文件无效的MVC帖子

时间:2012-06-20 09:09:40

标签: asp.net-mvc-3 http-post

我有一个用MVC 3 Razor语法开发的程序但是每当我用文件发布到控制器时它都不起作用但是如果我只是在没有文件的情况下发布到控制器就可以了。可能是什么问题呢 ?这是我的代码:

@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/DownloadFile?catID=@catid&filename=@filename&filepath=@filepath">@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)

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

1 个答案:

答案 0 :(得分: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>