1

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?
    }

}

次のエラーが表示されます。

このオブジェクトにはパラメーターなしのコンストラクターが定義されていません。

これを行う正しい方法は何ですか?エディター テンプレートを使用する必要がありますか?

4

1 に答える 1

0

エラーは何が間違っているかを正確に伝えていると思います。ビューにバインドされているものに、パラメーターなしのコンストラクターがありません。おそらくPagedList?

また、ビューにデータを入力するアクションは、HttpPost メソッドとは異なるモデルを使用しています。PagedClientViewModel と PagedList の比較。ビューを作成するときと送信するときに、同じビュー モデルを使用してみてください。

于 2013-01-11T14:03:11.910 に答える