我正在寻找一套在实施IModelBinder
时使用的最佳做法。
我已经阅读了三本不同的MVC书籍,每一本都在实现中略有不同,但没有任何实际的解释。
IModelBinder
DefaultModelBinder
而不是直接实施IModelBinder
,但我真的不知道如何利用这些好处ModelState.SetModelValue()
来遵循惯例。我只是想确保我的模型绑定器遵循约定,并且我正确理解整个ModelBindingContext
。
任何提示,技巧,GOOD教程推荐?
答案 0 :(得分:10)
K Scott Allen有一些关于模型绑定的提示: http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx
答案 1 :(得分:2)
我从DefaultModelBinder继承,因为它会自动绑定实体中的基本属性。我增强了它,因此它也绑定了导航属性。我的binder首先执行继承的绑定,然后在表单中搜索其他的导航属性值。我认为你的方法应该取决于你真正想做的事情。你也可以使用反射器,看看默认粘合剂背后的真正含义。这可能说服你继承。
答案 2 :(得分:2)
Travis Illig最近写了一篇关于创建自定义模型绑定器时数据类型验证的非常好的博客文章。
我之前从未见过这个建议,我觉得它真的很棒 - 所以我想提供这个链接:http://www.paraesthesia.com/archive/2012/01/31/data-type-validation-and-model-binding-in-asp-net-mvc.aspx
答案 3 :(得分:0)
MVC Futures 2有一个可扩展模型绑定系统。您可以在http://aspnet.codeplex.com/releases/view/41742
的发布文档中找到更多信息只需下载“ASP.NET MVC 2 Futures Extensible Model Binder Documentation”