請求書ページに、モデルが次のような 2 つのドロップダウンが必要です。
public class Invoice {
[Key]
public int InvoiceID { get; set; }
public int MemberID { get; set; }
public int AddressID { get; set; }
public virtual Member Member { get; set; }
public virtual MembersAddress MembersAddress { get; set; }
public virtual ICollection<InvoiceLineItem> InvoiceLineItems { get; set; }
}
ウィザードは私とコードの CRUD ページを自動的に生成しましたが、最初のドロップダウンからメンバー名を選択すると、そのメンバーのアドレスのみを入力する必要があります。InvoiceController の Create() メソッドのコードは次のとおりです。
public ActionResult Create()
{
ViewBag.MemberID = new SelectList(db.Members, "MemberID", "FirstName");
return View();
}
cshtml ファイルは次のとおりです。
@model MvcDemoApp.Models.Invoice
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Invoice</legend>
<div class="editor-label">
@Html.LabelFor(model => model.MemberID, "Member")
</div>
<div class="editor-field">
@Html.DropDownList("MemberID", String.Empty)
@Html.ValidationMessageFor(model => model.MemberID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.AddressID)
</div>
<div class="editor-field">
@@Html.EditorFor(model => model.AddressID)@
@Html.ValidationMessageFor(model => model.AddressID)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
前もって感謝します。