1
我有一個帶兩張表的發票和客戶。客戶PK在發票表中是FK。我有一個創建視圖,用戶在其中填寫發票數據。在這個表單中,我有一個帶有SelectList的@ Html.DropDownList,其中填充了db客戶中已經存在的名稱。用戶選擇客戶數據字段的基礎是autopopulated客戶數據經由局部視圖數據庫:MVC 3 EF - 使用現有數據添加新記錄
@using (Ajax.BeginForm("CustomerSelect", "Invoice", new AjaxOptions{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "CustomerFields"}))
這工作得很好,但是當我創建提交按鈕,它會在該CUTOMER的新實例數據庫,即使它應該使用從數據庫檢索到的ID。當被顯示在創建視圖的局部視圖它裏顯示正確客戶ID:
<div class="editor-label">
@Html.LabelFor(model => model.Customer)
<div class="editor-field">
@Html.EditorFor(model => model.Customer)
@Html.ValidationMessageFor(model => model.Customer)
</div>
</div>
但是,當我看發票對象內部中的Controler的httppost創建方法它顯示了示出了一個不同的(新)客戶ID:
[HttpPost]
public ActionResult Create(Invoice invoice)
{
if (ModelState.IsValid)
{
db.Invoices.Add(invoice); **//invoice.Customer.CustomerID == 1**
db.SaveChanges(); **//invoice.Customer.CustomerID changes to next free in the db == 7**
return RedirectToAction("Index");
}
return View(invoice);
}
我在做什麼錯?
這兩種方式對我的工作太好了,謝謝了很多! – Eric 2012-03-23 13:06:10