2009-03-31 6 views
0

Ich spiele zum ersten Mal mit MVC herum und habe ein Problem.In ASP.Net MVC 1.0 Wie füge ich untergeordnete Modelldaten ein?

Sagen wir, ich habe 2 Tabellen - Person und Ort. Standort hat eine Fremdschlüsselbeziehung zu Person - so kann eine Person mehrere Standorte haben, die ihnen gehören.

Aus meiner Sicht habe ich Formulareingaben für die Personenfelder - das funktioniert gut.

Allerdings möchte ich auch ein Raster halten Locations, (mit dem Standard Add/Delete-Schaltflächen), auch Master-Detail-Formular-Eingänge, die an den aktuellen Datensatz im Raster Standorte gebunden sind.

Mein Problem ist, wie implementiere ich das Kind Relation Grid und Formular-Eingaben in der Ansicht?

Antwort

1

Sie können ein anderes Formular für die Standorte mit einer eigenen Schaltfläche zum Hinzufügen/Speichern/Senden erstellen. Wenn die Submession vom Formular Person stammt, aktualisiert sie den Personendatensatz. Wenn die Übermittlung jedoch über das Formular Standort erfolgt, wird die entsprechende Aktion ausgeführt.

So:

// 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() %> 
<%}%> 
Verwandte Themen