Я работаю в ASP.NET MVC 5 (но это, скорее всего, относится и к предыдущим версиям). Лучший способ, чтобы задать этот вопрос, чтобы показать вам код:ASP.NET MVC SelectList в ViewModel
Вот является вид Модель:
public class PersonCreateViewModel
{
public SelectList cities {get; set;}
public String Name { get; set; }
public String Address { get; set; }
}
Вот метод HTTP Post от контроллера:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(PersonCreateViewModel viewmodel)
{
if (ModelState.IsValid)
{
//Add to database here and return
}
//return back to view if invalid db save
return View(person);
}
Вот Вид:
<div class="form-group">
@Html.LabelFor(model => model.person.name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.person.name)
@Html.ValidationMessageFor(model => model.person.name)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.person.address, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.person.address)
@Html.ValidationMessageFor(model => model.person.address)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.person.CityID, "CityID", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("cities")
@Html.ValidationMessageFor(model => model.person.CityID)
</div>
</div>
Когда пользователь нажимает кнопку «Отправить», в браузере появляется следующее сообщение об ошибке: "Нет конструктора без параметров, определенного для этого объекта. «
Я думаю, что это связано с тем, что у меня есть SelectList в моей модели ViewModel. Я думаю, что когда представление передает модель обратно контроллеру при отправке формы, он вызывает конструктор для SelectList, но там не конструктор без параметров для SelectList. Я не уверен, как поступить. Любая помощь приветствуется !!
Полная трассировка стека? Нет причин, по которым здесь вызывается конструктор SelectList. –
Кроме того, это ваша модель полного обзора? Вы уверены, что на нем нет конструктора с параметрами? –
Класс лица имеет без параметров construstor? –