0

MVC 3 Razor Syntaxで開発されたプログラムがありますが、ファイルを使用してコントローラーに投稿する場合は常に機能しませんが、ファイルを使用せずにコントローラーに投稿する場合は機能します。何が問題なのか?これが私のコードです:

@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)

投稿するたびに、ページの読み込み中にサーバーへの接続がリセットされたとブラウザが言っています。何が問題なのか?

4

1 に答える 1

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>
于 2012-06-20T09:31:17.963 に答える