2010-02-10 53 views

回答

2

MVC根据名称自动将表单值映射到Action参数。字符串和原始值类型很容易。

[HttpPost] 
public ActionResult AttemptLogin(string username, string password) 

我们也可以使用实体类型作为操作参数。在这种情况下,将使用默认的ModelBinder,并尝试绑定与“parameterName.PropertyName”的模式相匹配的任何后期数据。如果我的表单包含名为“user.FirstName”的字段,则我的用户对象将具有该属性集。

[HttpPost] 
public ActionResult Save(User user) 

自定义ModelBinders和BindAttribute为模型绑定提供了额外的灵活性。

// do not let MVC bind these properties 
[Bind(Exclude="Created, Modified")] 
public class User 

我可以有一个用户自定义联编程序,用于更改我自己的详细信息屏幕。这可能只有名字,姓氏和电子邮件属性。

[HttpPost] 
public ActionResult ChangeDetails(guid Id, [ModelBinder(typeof(UserChangeDetailsBinder))] User user) 

如果我有一个自定义联编程序应该用来代替默认的联编程序,它会在global.asax.cs中注册。

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

您还可以从Request["fieldname"]中读取表格值。

+1

在MVC2中改为'AcceptVerbs(“POST”)'我们使用'HttpPost'属性。 – 2010-02-10 08:35:49

+0

非常感谢你 – mary 2010-02-10 08:59:22

相关问题