新しい顧客を登録するために、データベース内の対応するテーブルを参照するビューにいくつかのパーシャルがあります。主キーは ID フィールドであるため、ビューに ID はありません。新しい顧客を挿入するには、3 つの住所 (訪問、郵便、連絡担当者) を挿入する必要があります。次に、契約の行、contact_person (既に挿入されている住所の 1 つからの addressId を使用) を挿入し、最後に新しい顧客の挿入に進みます。挿入されたばかりの訪問先住所、住所、契約者、連絡先を参照する外部キーが含まれます。
これらの部分ビューからのデータをオブジェクトとして CustomerController に渡し、そこでオブジェクトを処理するための最良/最も簡単な方法をお勧めできますか? 同様の状況を処理する例へのリンクも高く評価されます。
私のページの画像: http://i1345.photobucket.com/albums/p673/swell_daze/customer_registration_zps563341d0.png
テーブルの画像: http://i1345.photobucket.com/albums/p673/swell_daze/tables_zpsc60b644a.png
コードを表示:
@model CIM.Models.customer
<h2>Register new customer</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>New customer registration</legend>
<fieldset class="span3">
<legend>Basic information</legend>
<div class="editor-label">
@Html.LabelFor(model => model.name, "Name")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.name)
@Html.ValidationMessageFor(model => model.name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.groupId, "Customer group")
</div>
<div class="editor-field">
@Html.DropDownList("groupId", String.Empty)
@Html.ValidationMessageFor(model => model.groupId)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.status, "Status")
</div>
<div class="editor-field">
@Html.DropDownList("status")
@Html.ValidationMessageFor(model => model.status)
</div>
</fieldset>
<fieldset class="span3">
<legend>Visiting address</legend>
<div>
@{
Html.RenderPartial("AddressPartial");
}
</div>
</fieldset>
<fieldset style="width:270px">
<legend>Postal address</legend>
<div>
@{
Html.RenderPartial("AddressPartial");
}
</div>
</fieldset>
<fieldset class="span3">
<legend>Contract</legend>
<div>
@{
Html.RenderPartial("ContractPartial");
}
</div>
</fieldset>
<fieldset class="span3" style="width:540px">
<legend>Contact person</legend>
<div>
@{
Html.RenderPartial("ContactPersonPartial");
}
</div>
<p>
<input type="submit" class="btn btn-success" value="Submit" style="margin-right:1em"/>
@Html.ActionLink("Cancel", "Index", "Customer", new {@class="btn btn-danger", @type="button"})
</p>
</fieldset>
</fieldset>
}