0
當我從下拉列表中選擇類別時,它不保存在數據庫中。在數據庫中它顯示爲101的所有值如何在asp.net MVC中保存數據庫中的下拉值
MY view.cshtml是
<h4>RecStock</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Category, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<div class="editor-field">
@Html.DropDownList("Category",null, new { @class = "form-control" })
</div>
@Html.ValidationMessageFor(model => model.Category, "", new { @class = "text-danger" })
</div>
</div>
我的控制器是
public ActionResult Create()
{
ViewBag.Category = new SelectList(db.ProductDetails, "id", "Category");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Category,ProductName,ReceiveQty,Date")] RecStock recStock)
{
if (ModelState.IsValid)
{
db.RecStocks.Add(recStock);
ViewBag.Category = new SelectList(db.ProductDetails, "id", "Category", recStock.id);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(recStock);
}
雖然這是一個更好的語法,但它不會探究在OP的問題 - 這兩種方法最終都會在內部調用相同的代碼(並且您是否認真更新該問題) –
@StephenMuecke爲什麼不呢?他的版本沒有「for」,因此它不知道將哪個模型屬性分配給該值。另外,我沒有更新這個問題,除非我在該評論中遺漏了某些內容) – ganders
對不起,這應該是upvote(而不是更新)。 OP的代碼可能是可怕的做法,但它仍然會正確綁定到名爲'Category'的屬性(假設它是一個int)。這個問題不能回答 - 我們不知道OP的模型或數據是什麼。 –