的ModelBindingContext“知道”模型的类型它是手,因为你必须要么:
- 一个ModelBinder的属性添加到您的模型
- 使用的ModelBinders模型注册ModelBinder的。 Binders.Add()方法。 ModelBinder的属性
例子:
[ModelBinder(typeof(ContactBinder))]
public class Contact { ... }
ModelBinders.Binders.Add()的例子:
void Application_Start()
{
ModelBinders.Binders[typeof(Contact)] = new ContactBinder();
}
如果您已经注册ModelBinder的和已实施BindModel方法:
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { ... }
查询的ModelBindingContext.ModelType等于模型例如
if (bindingContext.ModelType == typeof(Contact)) { ... }
补充水分从ModelBindingContext.ValueProvider属性模型来检索,从形式帖子,路线数据表示数据ValueProviderResult情况下,查询字符串如
bindingContext.ValueProvider["Name"].AttemptedValue;
下列书籍使用 ASP.NET MVC 2的动作和 ASP.NET MVC 1.0快速
jeez,对不起,我标记为关闭错误的问题 – jfar 2010-08-19 16:30:54