我是asp.net mvc的新手,我偶然发现了一个项目,其中包含一个实际的Model类作为Action Method的参数。它看起来像这样:
public ActionResult Index(PersonFormViewModel person)
{
id = person.Id; ...etc..
}
有人能指出我在自己的项目中如何实现这样的事情的一些示例吗?
提前致谢
答案 0 :(得分:1)
实际上这很容易,您的表单元素和模型对象上的名称只需要排列以使自动绑定器工作,或者您可以实现或指定自定义绑定器。 Scott Gu在预览5发布时首次出现在他的博客上写了这篇文章。
http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx
另一个很好的例子:
http://www.bradygaster.com/post/ASPNET-MVC-Model-Binding-Example.aspx
答案 1 :(得分:1)
在您的视图中,只需将与模型属性对应的输入作为模型的参数名称的前缀。对于具有简单属性的模型,这应该可行。如果您的模型具有复杂属性(子模型),则可能需要开发自定义模型绑定器。如果你有数组,那么你需要在视图方面做一些额外的格式化(参见Phil Haack's blog)。
<%= Html.Hidden("Person.Id") %>
<%= Html.TextBox("Person.FirstName") %>
<%= Html.TextBox("Person.LastName" ) %>