私のフォームは
@using (Html.BeginForm("Search", "CourseList", FormMethod.Post, new { enctype =
"multipart/form-data" }))
{............
@foreach (var course in Model.Courses)
{
<tr >
<td>@course.Date</td>
<td>@course.Name</td>
<td style="text-align: center;">@course.Units</td>
<td>@course.Description</td>
@using (Ajax.BeginForm("Upload", "CourseList",new AjaxOptions{HttpMethod = "post",}, new { id = course.Id, enctype = "multipart/form-data" }))
{
<input type="hidden" name="course" value="@course.Id"/>
<td><input id="fileUpload" type="file" name="file" /><input type="submit" class="add-btn-grid"/>
<div id="divFileNames">
<ul>
@if (course.Files != null)
{
foreach (var name in course.Files)
{
<li><a href="@name.Value">@name.Key</a></li>
}
}
</ul>
</div>
</td>
}
<td><a class="add-btn-grid" href="@Url.Action("Index", "Quiz", new { courseId = course.Id })" >Setup Quiz</a> <a href="@Url.Action("AddCourse", "AddCourse", new { courseId = course.Id })" class="add-btn-grid" >Edit </a></td>
</tr>
}
......
<div class="pagination" id="paginationdiv">
Page @Html.DropDownListFor(m => m.PageSize, new SelectList(Model.PageSizeList, "Key", "Value", Model.PageSize), new { id = "ddlPageSize", onchange = "this.form.submit();" })
Records @Html.DropDownListFor(m => m.CurrentPage, new SelectList(Model.PageNo, "key", "Value", Model.CurrentPage), new { id = "ddlPageNo", onchange = "this.form.submit();" })
</div>
}
私のコントローラーは
public ActionResult Upload(string course, HttpPostedFileBase file)
{
try
{
var model = new CourseListViewModel();
var courseId = Request["id"];
return View("Index", model);
}
catch (Exception ex)
{
_logger.LogError(Log4NetLogger.Category.Exception, "Error in : CourseListController.Upload :" + ex.Message);
return View("Error");
}
}
私が必要とするのは、各内部フォーム送信でページング ドロップダウンの値を渡すことです。
私はajax投稿を使用することを考えましたが、ファイルのアップロードのためにフォーム送信に変更しました。
このシナリオを効率的に処理するにはどうすればよいですか。