2009-03-31 4 views
0

Я просто играю с MVC в первый раз, и у меня проблема.В ASP.Net MVC 1.0 Как вставить дочерние данные модели?

Предположим, у меня есть 2 стола - человек и место. У местоположения есть отношение внешнего ключа к Лицу - поэтому у 1 человека может быть несколько мест, принадлежащих им.

На мой взгляд, у меня есть входные данные для полей Person - это отлично работает.

Однако я также хочу иметь сетку для хранения местоположений (со стандартными кнопками «Добавить/Удалить»), а также входные данные формы мастер-детали, привязанные к текущей записи в сетке «Местоположения».

Моя проблема заключается в том, как реализовать сетку отношений дочерних отношений и формы ввода в представлении?

ответ

1

У вас может быть другая форма для местоположений с ее собственной кнопкой «Добавить/Сохранить/Отправить». Поэтому, когда submssion происходит из формы Person, он обновляет запись Person, но если представление происходит из формы Location, оно выполнит соответствующее действие.

Как это:

// person data 
<table> 
    <tr><td>Name:</td><td><%=Model.PersonName%></td></tr> 
    <tr><td>Title:</td><td><%=Model.PersonTitle%></td></tr> 
    <tr><td>Other Info:</td><td><%=Model.PersonOtherInfo%></td></tr> 
</table> 
// person's locations grid 
<table> 
    <tr><th></th><th></th></tr> 
    <% foreach (Location loc in Model.PersonLocations) { %> 
    <tr><td>Delete</td><td><%=loc.LocationName%></td></tr> 
    <% } %> 
</table> 
// new location form 
<% using (Html.BeginForm<MyController>(p => p.New())) { %> 
<table> 
    <tr> 
     <td>Location Name</td> 
     <td><%=Html.TextBox("LocationName")%></td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <%=Html.SubmitButton("Save", "Save")%>&nbsp; 
      <%=Html.Button("Cancel", "Cancel", HtmlButtonType.Button,"javascript:cancelEdit();") %> 
     </td> 
    </tr> 
</table> 
<%=Html.AntiForgeryToken() %> 
<%}%>