我在使用NuGet中的Pagelist.Mvc包将Ajax.BeginForm的值从视图发布到应用程序中的控制器时遇到麻烦。 这是我的删除操作代码示例:
模型:
namespace test1.Models
{
public class UploadItem
{
public string FileName { get; set; }
public string Directory { get; set; }
}
}
视图:
@model PagedList.IPagedList
@using test1.Models;
@using PagedList.Mvc;
@using PagedList;
@foreach (UploadItem item in Model)
{
@using (Ajax.BeginForm("DeleteItem", "Upload", new AjaxOptions {HttpMethod = "POST"}))
{
@Html.HiddenFor(m => item.FileName)
@Html.HiddenFor(m => item.Directory)
}
}
控制器:
using System.Web.Mvc;
using test1.Models;
using PagedList.Mvc;
using PagedList;
namespace test1.Controllers
{
public class UploadController
{
[HttpPost]
public ActionResult DeleteItem(IPagedList uploadItems)
{
UploadHelper.DeleteFileFromDirectory(uploadItems[0].FileName,
uploadItems[0].Directory);
var listOfUploadedFiles = UploadHelper.GenerateListOfUploads();
const int rows = 5;
const int page = 1;
int index = page.HasValue ? Convert.ToInt32(page) : 1;
var uploadedFiles = listOfUploadedFiles.ToPagedList(index, rows);
ViewBag.UploadedItems = uploadedFiles;
ViewBag.PageNum = page;
return View(uploadedFiles);
}
}
}
有任何想法吗? 我正在尝试避免在此刻直接使用Javascript来执行帖子。