1

以下のコードがあります。アップロードボタンをクリックするたびに、ファイルが送信されます。エラーがある場合は、グリッドに表示されます。しかし、ページ番号をクリックすると、ページ番号を入力としてコントローラー アクション「アップロード」が呼び出されます。また、並べ替えのために列名をクリックすると、コントローラ アクション「アップロード」が sort=columnname および sortDIR=ASC パラメータで呼び出されます。

これらのコントローラー アクション コールを防止したい。

コントローラーで:

[HttpPost]
public ActionResult Upload(HttpPostedFileBase fileUpload)
{
}

設計中:

@using (Html.BeginForm("Upload", "FileUpload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="fileUpload" size="35" id="fileupload"/>
    <br />
    <br />
    <span class="button">
        <input type="submit" class="form_button" value="Upload" id="btnUpload" />&nbsp;&nbsp;                       
    </span>
    <span class="button">
        <input type="reset" id="btnCancel" value="Cancel" name="Cancelbutton" class="form_button" />
    </span>                                  

    <div id="progressbardiv" style="display:none; font-size:medium;">
        <img src="../../Images2/ajax-loader.gif"/>Uploading File...
    </div>                        
    <br />
    <br />
}

@if (Model.lstError != null)
{                                       
    <div id="grid">
        @{ 
            var grid = new WebGrid(source: Model.lstError,
                canSort: true,
                rowsPerPage: 10                    
            );
        }

        @grid.GetHtml(
            tableStyle: "webGrid",
            headerStyle: "gridHead",
            alternatingRowStyle: "alt",
            columns: grid.Columns(
                grid.Column("RowId", header: "Sr.No"),
                grid.Column("EmployeeID", header: "Emp Id"),
                grid.Column("ApplicantID", header: "Candidate Id"),
                grid.Column("EmployeeName", header: "Employee Name"),
                grid.Column("Message", header: "Message")
            )
        )
    </div> 
}
4

1 に答える 1

0

アップロード アクションからグリッドをロードしているため、そこにグリッドが戻ってページングされたデータを取得し、並べ替えを行います。この回答が表示された場合は、WebGrid を使用してこの動作を回避する明確な方法がないことを説明し、代替ソリューションを提供します。

于 2013-05-09T04:03:06.860 に答える