В ASP.Net MVC 1.0 Как вставить модель дочерних данных? - PullRequest
0 голосов
/ 31 марта 2009

Я просто играю с MVC впервые и у меня возникла проблема.

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

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

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

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

1 Ответ

1 голос
/ 14 апреля 2009

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

Как это:

// 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() %>
<%}%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...