我有一个自定义 ViewModel 定义为:
public class SampleFormViewModel
{
public SampleFormViewModel(SelectList companies, Widget widget)
{
Companies = companies;
Widget = widget;
}
public SelectList Companies { get; private set; }
public Widget Widget { get; private set; }
}
在我的编辑 POST 处理程序中,我有以下条目:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(SampleFormViewModel model)
{
编辑表单设置为:
Inherits="System.Web.Mvc.ViewPage<Sample.Web.Models.SampleFormViewModel>"
它只是爆炸,不知道发生了什么,有以下错误:没有为这个对象定义无参数构造函数。当然,我在这里遗漏了一些非常明显的东西。在某些背景下,GET 可以完美运行,并按预期显示 SelectList 中的下拉列表。我猜想自动绑定回自定义视图模型是失败的,但不知道该怎么做。