MVC4 Изпратете PagedList

Как да изпратя формуляр, който съдържа 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?
    }

}

Получавам следната грешка:

Няма дефиниран конструктор без параметри за този обект.

Какъв е правилният начин да направите това? Трябва ли да използвам шаблон за редактор?


person woggles    schedule 11.01.2013    source източник
comment
Кога получавате тази грешка? Кога изпращате формуляра си?   -  person Ben Tidman    schedule 11.01.2013
comment
Да, когато щракнете върху бутона за изпращане   -  person woggles    schedule 11.01.2013


Отговори (1)


Мисля, че грешката ви казва какво точно не е наред. Нещо, което е обвързано с вашия изглед, липсва конструктор без параметри. PagedList може би?

Също така вашето действие, което попълва вашия изглед, използва модел, различен от вашия метод HttpPost. PagedClientViewModel срещу PagedList. Опитайте да използвате един и същ модел на изглед, когато създавате своя изглед и когато го изпращате.

person Ben Tidman    schedule 11.01.2013
comment
Накарах това да работи по следния начин: stackoverflow.com/questions/14258212/mvc-posting- ipagedlist - person woggles; 24.01.2013