2009-10-10 5 views
0

Я новичок в asp.net mvc, и я натолкнулся на проект назад, который включал фактический класс Model в качестве параметра в методе действий. Это выглядело примерно так:Как я могу сделать параметр в методе действий классом модели

public ActionResult Index(PersonFormViewModel person) 
{ 
    id = person.Id; ...etc.. 
} 

Может ли кто-нибудь указать мне на некоторые примеры того, как реализовать что-то подобное в моем собственном проекте?

Заранее спасибо

ответ

1

На ваш взгляд, просто префикс входов, которые соответствуют свойствам модели с именем параметра модели. Для модели с простыми свойствами это должно работать. Если ваша модель обладает сложными свойствами (подмодели), вам может потребоваться разработать настраиваемое связующее устройство. Если у вас есть массивы, вам нужно будет сделать дополнительное форматирование на стороне просмотра (см. Об этом Phil Haack's blog).

<%= Html.Hidden("Person.Id") %> 
<%= Html.TextBox("Person.FirstName") %> 
<%= Html.TextBox("Person.LastName") %> 
1

Это на самом деле очень легко сделать, ваши имена на форме элементов и ваша объектная модель просто нужно выстраиваться для автоматического связующий работать, или вы можете реализовать или указать пользовательский связующий , Скотт Гу написал об этом в своем блоге, когда он впервые появился в выпуске предварительного просмотра 5.

http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx

http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx

Другой хороший пример:

http://www.bradygaster.com/post/ASPNET-MVC-Model-Binding-Example.aspx

Смежные вопросы