Что должно быть на месте, чтобы 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)
{
}
}
Дело в том, что для связывания модели по умолчанию необходим конструктор без параметров, чтобы создать экземпляр вашей модели. Если у вас есть для этого веские основания (вы не нуждаетесь в этом случае), вы можете заменить его на специальное связующее для модели. Если добавление конструктора по-прежнему не помогает, дайте нам знать - тогда проблема также в другом месте. Но наличие конструктора без параметров вместе с другими является первым важным шагом здесь