2009-10-21 2 views
2

Я использую строго типизированный вид, чтобы показать сложный объект в форме ввода/редактирования данных. например: Model.UserInformation.Name, Model.LivingPlace.FacilitiesSelectList, Model.Education.DegreesList ... и т. д. Эти данные отображаются в многосетевом списке, сетках и т. д. Пользователь может изменить информацию на экране редактирования. Есть ли способ опубликовать объект модели с пользовательскими изменениями в контроллере при нажатии кнопки sumbit. Пожалуйста, предложите.Публикация сложного объекта (с иерархией) на контроллер в ASP.NET MVC

Привет, ШАНЬ

+0

Отметьте [этот вопрос] (http://stackoverflow.com/questions/711184/asp-net-mvc-example-of-editing-multiple-child-records/). –

ответ

2

В том же экземпляре объекта, который был передан в представление: Нет ASP.NET MVC использует по умолчанию Модели связующего для создания экземпляра новых параметров действий из значений запроса. Например, если у вас был следующий метод действий:

public ActionMethod DoWork(User model) 
{ 
    return View(); 
} 

public class Address 
{ 
    public string Street { get; set; } 
} 

public class User 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public Address[] Addresses { get; set; } 
} 

Взаимодействие будет выглядеть в запросе и попытаться привязать значения модели. На вашем Вид:

<%= Html.TextBox("FirstName") %> 
<%= Html.TextBox("LastName") %> 
<%= Html.TextBox("Addresses[0].Street") %> 
<%= Html.TextBox("Addresses[1].Street") %> 

Это автоматически заполнит значения вашей модели в действии контроллера.

Чтобы избежать массового назначения свойств, которые не должны быть связаны с запроса значений, это всегда хорошая идея использовать BindAttribute и набор Exclude или Include свойства.

0

Использовать <input type="text" name="UserInformation.Name"><input> для привязки к подобъектам.

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