ViewModel类是否必须具有显式构造函数?

时间:2011-02-15 10:30:45

标签: c# asp.net-mvc

ViewModel类是否必须具有显式构造函数?

编辑1:

我的ViewModels包含域数据和一些查找数据,如下所示:

namespace MvcMultiList.ViewModels
{
    public class PersonVM
    {
        public Person Person { get; set; }
        public MultiSelectList MultiSelectList { get; set; }
    }
}

如果没有明确的ctors,模型绑定是否仍然有效?

2 个答案:

答案 0 :(得分:3)

不,默认无参数就好了。

您可以使用对象初始值设定项填充它:

return View(new MyViewModel
{
   Property = 'value'
});

编辑:

如果没有明确的ctors,模型绑定是否仍然有效?

是 - 默认模型绑定无论如何都使用无参数构造函数。

如果你没有为类声明任何构造函数,即。 class Foo { } C#编译器将为您class Foo { public Foo(){} }生成一个默认值。

答案 1 :(得分:0)

如果您使用的是标准模型绑定功能,则视图模型上必须有无参数构造函数,您也可以使用其他构造函数重载。