Что должно быть на месте, чтобы pagedList вернулся к действию post?

Я не собираюсь публиковать множество кода (снова), чтобы попытаться выяснить это. Это asp.net MVC 3-приложение, использующее бритву. Я просто хочу знать, что именно должно быть на месте, чтобы можно было использовать представление..

  @model IPagedList<Model>

Отослать эту модель обратно в качестве параметра для действия Post. Я уже пробовал конструктор без параметров в моей модели

   public Model model { get; set; }

и это хорошо..

  public PagedList<Model> pagedList { get; set; }

и я все еще получаю эту ошибку.. "Для этого объекта не определен конструктор без параметров"

Я думал, что мое действие Post должно выглядеть так...

   public ActionResult Index(IPrincipal user, PagedList<Model> model)

Но это бросает ошибку в этом пункте. Кто-нибудь? Я посмотрел на десятки вопросов по ОС, но ни у одного из них нет решения, подходящего для моего проекта.

***** Редактировать *** Просто чтобы подчеркнуть, я попытался добавить этот конструктор без параметров, но ошибка остается..

   public TrackerModel() { }

Просто чтобы дать более подробную информацию, эта viewModel, TrackerModel, используется в частичном представлении в представлении индекса. Таким образом, Get Index ActionResult не использует ViewModel напрямую, а частичное представление, содержащееся в его представлении. На него ссылаются из контроллера...

  public PartialViewResult AllCalibrations(int? page, IPrincipal user)

ViewModel отображается из класса сущности с именем "Калибровка" через Automapper.

    Mapper.CreateMap<Calibration, TrackerModel>().ConvertUsing(new CalibrationToTrackerModel());

Модель калибровок, содержит все виртуальные свойства, используемые в базе данных.

1 ответ

Решение

Ваш класс Model должен выглядеть примерно так:

public class Model
{
     //some properties ...

     // parameterless constructor
     public Model() { }

     //constructor with params
     public Model(string id)
     {
     }
 }

Дело в том, что для связывания модели по умолчанию необходим конструктор без параметров, чтобы создать экземпляр вашей модели. Если у вас есть для этого веские основания (вы не нуждаетесь в этом случае), вы можете заменить его на специальное связующее для модели. Если добавление конструктора по-прежнему не помогает, дайте нам знать - тогда проблема также в другом месте. Но наличие конструктора без параметров вместе с другими является первым важным шагом здесь

Другие вопросы по тегам