我的模特就像这样
public class MyModel
{
string ID {get;set;}
string Title {get;set;}
MyOtherModel Meta {get;set;}
}
如何为类型(MyOtherModel)定义自定义模型绑定器,因此当默认绑定器绑定MyModel时,它会调用“Meta”属性的自定义模型绑定器。 我在App start中注册了它:
ModelBinders.Binders[typeof(MyOtherModel)] = new MyCustomBinder();
但这不起作用。有关模型粘合剂的更多信息的任何想法或任何好文章?
答案 0 :(得分:1)
有一篇关于集合的文章涉及复杂类型映射的东西:
Collections and a bit about complex types
另一方面,本文可以为您提供一些有用的提示:
http://odetocode.com/Blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx
我建议您使用MyModel类的模型绑定器解决方法,它不是一个完美的解决方案,但是一旦找到更好的解决方案,您就可以轻松地重构。 :)
答案 1 :(得分:0)
实际上,如果您将使用MyModel类的模型输入一些编辑/创建视图,如下所示:
<%= Html.TextBox("Meta.Prop1") %>
其中Prop1是MyOtherModel类的属性, 然后
UpdateModel(model);
会将文本框值填充到自定义子模型属性中。然后,文本框值也将填充该子模型值。
因此,一旦更新了当前的模型,您也在更新子模型。