如何在ASP.NET MVC中使用模型绑定来处理自定义对象?

时间:2010-07-09 09:12:11

标签: c# .net asp.net-mvc modelbinders model-binding

我想为富客户端应用程序采用ASP.NET MVC模型绑定。我有以下控制器操作:

public ActionResult CreateUser(User profile)

以前使用HTML表单时,只要表单HTML输入名称与User的属性名称匹配,模型绑定就会自动发生。

我理解模型绑定也在路由数据中查找,querystring用于绑定到实体的值,但是当我放置与属性匹配的查询字符串值时,我得到404

我无法让这个ActionResult继续工作。我是否需要配置一个参数匹配用户类属性的路由?

1 个答案:

答案 0 :(得分:0)

您始终可以实现自定义模型绑定器(IModelBinder接口)。然后你可以像这样使用它:

public ActionResult CreateUser([ModelBinder(typeof(MyUserModelBinder))]User profile)

或在应用程序启动时将其注册为全局模型绑定程序:

ModelBinders.Binders[typeof(User)] = new MyUserModelBinder();

但也许首先你应该看看DefaultModelBinder是如何运作的 我想如果你输入的字段如“profile.Name”,“profile.Gender”,它应该可以正常工作。