可能重复:
ASP.NET MVC: No parameterless constructor defined for this object
我正在研究ASP.NET MVC3应用程序。
当用户在表单上输入信息时,我正在尝试使用[HttpPost]
来检索信息。
基于“默认”空白ASP.Net项目的登录脚本,我有以下内容:
在我的控制器中:
public ActionResult Ticket(int id)
{
Models.Ticket model = new Models.Ticket(id);
return View("Ticket", model);
}
[HttpPost]
public ActionResult Ticket(int id, MMCR.Models.Ticket model)
{
if (id != model.TicketNo)
{
return View("Error");
}
return View("Ticket", model);
}
在视图中我有:
@using (Html.BeginForm()) {
<div>
<fieldset>
<legend>View Ticket Details</legend>
<div class="editor-label">
@Html.LabelFor(m=>m.Status)
</div>
<div class="editor-field">
@Html.DropDownListFor(m=>m.Status, Model.Status)
</div>
<p>
<input type="submit" value="Update" />
</p>
</fieldset>
</div>
}
(显然是在剔除重复的东西)。
但是,当我点击按钮时出现错误:
异常详细信息:System.MissingMethodException:没有为此对象定义无参数构造函数。
有人可以就如何解决这个问题提出一些建议吗?
答案 0 :(得分:17)
您的班级MMCR.Models.Ticket
需要无参数构造函数。
当您通过Post方法传递此类型的对象时,MVC将使用无参数构造函数创建该类的实例。然后,它会将表单字段映射到该对象。