Master Detail ASP.Net MVC - PullRequest
       0

Master Detail ASP.Net MVC

1 голос
/ 17 ноября 2010

Я новичок в ASP.Net MVC и у меня есть вопрос, касающийся формы ввода основной детали.

В моей базе данных есть дочерняя таблица с отношениями внешнего ключа к таблице Physician, Immunization and Parent Table. Я использовал Linq to SQL для создания моей модели.

Я создал контроллер и просмотр для Child. Пользователь придет к форме и отправит все сразу - ребенка, информацию о его враче, одного или нескольких родителей и одну или несколько прививок.

Я не уверен, как подойти к этому. Нужен ли мне контроллер для вакцинации, родителей и т. Д.?

Мое приложение до MVC просто захватило все из веб-формы и заполнило все

Ответы [ 2 ]

0 голосов
/ 18 ноября 2010

Вам нужны только главные контроллеры. Хитрость для редактирования списка мыслей (дочерних объектов) описана в этом взломанном посте

По сути, вы должны следовать этим соглашениям, и MVC заполнит массив дочерних объектов в методе post:

<% for (int i = 0; i < 3; i++) { %>

  <%: Html.TextBoxFor(m => m[i].Title) %>
  <%: Html.TextBoxFor(m => m[i].Author) %>
  <%: Html.TextBoxFor(m => m[i].DatePublished) %> 

<% } %>
0 голосов
/ 17 ноября 2010

У меня обычно есть один контроллер, который поддерживает несколько видов (добавление, редактирование, удаление и т. Д.). Я читаю из своей базы данных модель, в которой есть поля для каждого фрагмента данных, который вы хотите видеть. Затем вы передаете модель представлению, чтобы оно могло ее отобразить.

После отправки формы вы получите от нее модель в качестве параметра для контроллера. Затем вы обновляете базу данных по мере необходимости.

Вот код. Я не пытался его скомпилировать, поэтому ваш пробег может отличаться.

    public class ParentModel
    {
        // Parent fields
        public string FirstName { get; set; }
        public string LastName { get; set; }

        IList<ChildModel> Children { get; set; }
    }

    public class ChildModel
    {
        // Child fields
        public int Age { get; set; }
    }


    public ActionResult MyAction()
    {
        // Grab a model with the children property filled out
        ParentModel myModel = GetFromDatabase();

        return View("MyView", myModel);
    }

Вид (сокращенно):

<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<ParentModel>" %>

.
.
.


<% using (Html.BeginForm("MyAction", "MyController", FormMethod.Post)) %> 
<% {%>
        <%= Html.ValidationSummary(true) %> 

        <table>
            <tr valign="top">
                <td>
                    <%:Html.LabelFor(a => a.FirstName)%>:
                </td>
                <td>
                    <%:Html.EditorFor(a => a.FirstName)%>
                    <%:Html.ValidationMessageFor(a => a.FirstName)%>
                </td>
            </tr>
            <tr valign="top">
                <td>
                    <%:Html.LabelFor(a => a.LastName)%>:
                </td>
                <td>
                    <%:Html.EditorFor(a => a.LastName)%>
                    <%:Html.ValidationMessageFor(a => a.LastName)%>
                </td>
            </tr>
        </table>

        .
        .
        .

    <%} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...