ドロップダウンリストから読み直された値を、同じドロップダウンリストが結果とともに表示されるビューに戻す方法を理解しようとしています
コントローラ:
//
// GET: /ProductByID/
[HttpGet]
public ActionResult ProductById()
{
ViewBag.IDNumbers = ddlItems;
return View();
}
//
// POST: /ProductByID/
[HttpPost]
public ActionResult ProductById(FormCollection formdata)
{
string selected = formdata["IDNumbers"];
int id = int.Parse(selected);
Product p = items.GetByID(id);
return View(p);
}
景色:
@model ProductsMVC_Basic.Models.Product
@{
ViewBag.Title = "Product By Id";
}
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script>
$(function () {
$("#IDNumbers").change(function () {
if ($("#IDNumbers").val() != "") {
this.form.submit();
}
});
});
</script>
<div>
@using (Html.BeginForm("ProductById", "Home", FormMethod.Post))
{
@Html.DropDownList("IDNumbers", "--Select One--")
}
</div>
これは、ドロップダウンリストに入力し、フォームデータをコントローラーに送り返す限り機能します。私の質問は、ドロップダウンが表示され、名前やカテゴリなどのモデルデータも表示されるように、投稿ビューにモデルデータを表示する方法です.
同じビューにポストバックするたびに、「キー 'IDNumbers' を持つタイプ 'IEnumerable' の ViewData アイテムはありません」というエラーが表示されます。ポストビューで。