MVC4 Отправить список страниц

Как отправить форму, содержащую 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
Получил, чтобы это работало следующим образом: список IP-адресов - person woggles; 24.01.2013