PagedList を含むフォームを送信するにはどうすればよいですか?
モデル:
public class PagedClientViewModel
{
public int? Page { get; set; }
public PagedList.PagedList<ClientViewModel> Clients { get; set; }
}
public class ClientViewModel
{
public int ClientId { get; set; }
public string Name { get; set; }
public bool IsCool { get; set; }
}
意見:
@model MvcApplication21.Models.PagedClientViewModel
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm("index", "home"))
{
foreach (var item in Model.Clients)
{
<div>
@Html.HiddenFor(modelItem => item.ClientId)
@Html.EditorFor(modelItem => item.Name)
@Html.CheckBoxFor(modelItem => item.IsCool)
</div>
}
<input type="submit" value="submit" />
}
意見:
public ActionResult Index()
{
List<ClientViewModel> clients = new List<ClientViewModel>();
ClientViewModel client1 = new ClientViewModel
{
ClientId = 1,
Name = "Bob",
IsCool = false
};
ClientViewModel client2 = new ClientViewModel
{
ClientId = 2,
Name = "John",
IsCool = false
};
ClientViewModel client3 = new ClientViewModel
{
ClientId = 3,
Name = "Peter",
IsCool = true
};
clients.Add(client1);
clients.Add(client2);
clients.Add(client3);
PagedClientViewModel model = new PagedClientViewModel
{
Page = 1,
Clients = new PagedList<ClientViewModel>(clients, 1, 10)
};
return View(model);
}
[HttpPost]
public void Index(PagedList<ClientViewModel> model)
{
//how do i process the model here?
}
}
次のエラーが表示されます。
このオブジェクトにはパラメーターなしのコンストラクターが定義されていません。
これを行う正しい方法は何ですか?エディター テンプレートを使用する必要がありますか?