我一直在试图弄清楚如何将从下拉列表中重读的值传递回与结果显示相同的下拉列表的视图
控制器:
//
// 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 项。” 在 PostView 中。