ASP.NET MVC和模型绑定?

时间:2012-12-12 09:07:35

标签: asp.net html asp.net-mvc

为了将少数asp.net webforms转换为MVC剃刀视图,我已将所有服务器端控件转换为等效的HTML标记。

我有点迟到意识到我应该使用MVC HTML帮助程序,这里的问题是我无法将HTML标记值绑定到强类型视图请求。

MVC-3中是否有任何方法可以使用HTML标记映射模型属性,而不使用HTML帮助程序?

Consider following Model class:
class Person
{
    public string FirstName{get; set;}
}
View
@model MyApplication.Models.Person

<input type="text" id="txtFirstName" **???**/>

代替???我希望这里有一些属性将输入绑定到Model的FirstName属性。

可行吗?

1 个答案:

答案 0 :(得分:2)

DefaultModelBinder正在使用name属性将HTTP请求中的值绑定到模型。如果此约定不适合您的需要,您可以编写自己的ModelBinder。

所以在你的情况下,以下代码应该可以工作(但我建议使用HTML帮助程序,因为使用HTML帮助程序,你可以使用自动不显眼的验证)

<强>控制器:

public ActionResult Create(Person person) {
  ...
}

查看:

@model MyApplication.Models.Person

<input type="text" id="txtFirstName" name="FirstName" />