我正在试验 ASP.NET MVC2,特别是视图模型和局部视图。我的问题是:如果视图使用局部视图,让你的局部视图强类型化接口并且让你的视图模型实现该接口是“有效”还是“正确”?
举例来说,假设我有一个 Product 表单部分(针对 IProductFormViewModel 进行强类型化),它在 Edit 和 Create 视图中都使用。这些视图是针对实现 IProductFormViewModel 的 ProductEditViewModel 和 ProductCreateViewModel 进行强类型化的。
好处是 Create 和 Edit 的相应 POST 操作分别采用 ProductCreateViewModel 和 ProductEditViewModel 对象。
编辑:如果部分有自己的专用视图模型(ProductFormViewModel),并且每个 ProductEditViewModel 和 ProductCreateViewModel 都公开一个传递给部分的 ProductFormViewModel 类型的属性,那么当提交表单时,ProductEditViewModel 和 ProductCreateViewModel 的模型绑定不起作用因为 Edit 和 Create 操作期望它们各自的对象类型......这就是该方法的原因。