2009-03-31 3 views
0

私は初めてMVCで遊んでいて、問題があります。ASP.Net MVC 1.0でモデルの子データを挿入するにはどうすればよいですか?

私は2つのテーブルがあるとしましょう - 人と場所。場所にはPersonとの外部キー関係があるため、1人のユーザーが複数の場所を所有できます。

私の見解では、Personフィールドの入力をフォームにしました。これはうまくいきます。

しかし、Locations(標準のAdd/Deleteボタン)を保持するグリッド、Locationsグリッドの現在のレコードに結び付けられているマスターディテールフォーム入力も必要です。

私の問題は、ビュー内で子リレーショングリッドとフォーム入力をどのように実装するのですか?

答えて

1

独自の[追加/保存/送信]ボタンを使用して、場所に別のフォームを作成することができます。したがって、サブフォームが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() %> 
<%}%> 
関連する問題