2012-06-20 49 views
0

我有一个程序是在MVC 3 Razor语法开发的,但是每当我发布到控制器与文件它不起作用,但如果我只是张贴到控制器没有文件它的工作原理。可能是什么问题呢 ?这里是我的代码:MVC文章不起作用

@using (Html.BeginForm("UpdateFile", "AdministerFiles", FormMethod.Post, 
new {enctype = "multipart/form-data"})) 

{ 
    string title = null; 
    string description = null; 
    string filename = null; 
    int dataid = 0; 
    int filesize = 0; 
    string filepath = null; 
    foreach (var fileDetails in ((RefDataLinks_mst[])@Model[1])) 
    { 
     title = fileDetails.DataTitle; 
     description = fileDetails.Description; 
     filename = fileDetails.DataFileName; 
     dataid = fileDetails.DataID; 
     filesize = fileDetails.FileSize; 
     filepath = fileDetails.DataFilePath; 
    } 

    <div id="updateLeftTopPart"> 
     <label class="addFileLabel"for="title">Title : </label><textarea rows="3" cols="50" name="title" required>@title</textarea> <br /> <br />  
    </div> 

    <div id="updateRightTopPart"> 
     <label for="description">Description : </label><textarea rows="2" cols="50" name="description" required>@description</textarea> 

    </div> 
    <div id="updateLeftPart"> 
     <label>Existing File : </label><label><a href="/BrowseData/[email protected]&[email protected]&[email protected]">@filename</a></label> 
    </div> 

    <div id="updateUploadFile"> 
     <label for="file">Upload New File Here :</label><input type="file" name="file" id="file"/> 
    </div> 

     <input type="hidden" value="@catid" name="catid"/> 
     <input type="hidden" value="@filename" name="existingFile"/> 
     <input type="hidden" value="@dataid" name="dataid"/> 
     <input type="hidden" value="@filesize" name="filesize"/> 
    <div id="updateActions"> 
     <input type="submit" value="Update File" /> 
     <input type="reset" value="Reset" /> 
    </div>   
} 

这些都是我的控制器的参数:

public ActionResult UpdateFile(HttpPostedFileBase file, int catid, int dataid, string title, string existingFile, string description, int filesize) 

每当我后,浏览器是说,到服务器的连接,而页面加载被重置。可能是什么问题呢 ?

回答

3

无论何时我发布,浏览器都会说在加载页面时重置了与 服务器的连接。可能是什么问题呢 ?

您可以使用<httpRuntime>元素在web.config中增加的默认4MB限制。

<!-- Allow files up to 100MB to be uploaded --> 
<!-- Also increase the execution timeout as uploading 
100 MB files could take some time and ASP.NET won't wait that long --> 

<httpRuntime maxRequestLength="102400" executionTimeout="3600" /> 

通过,如果你在主机IIS应用程序7+还需要调整requestLimits为相同的值(以字节为单位这段时间)的方式:

<system.webServer> 
    <security> 
     <requestFiltering> 
      <!-- Limit file uploads to 100MB --> 
      <requestLimits maxAllowedContentLength="104857600" /> 
     </requestFiltering> 
    </security> 
</system.webServer>