运行项目时,我的PartialView中出现此错误“未知模块中发生了'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException类型的异常”。 但未在用户代码中处理 附加信息:System.Web.Mvc.SelectListItem不包含值的定义“
我在数据库中有两个表类别和产品,使用EntityFramework ADO.ENTITY,项目为ASP.NET MVC 在产品表中,我有ProductId,ProductName和CategoryId 我想创建从Category DropDownList到Product DropDownList的级联,我的意思是我想先选择Category,然后选择所有具有相同CategoryId的产品。 但是无法按原样工作,请帮助我。
这是我的控制器:
public class CasController : Controller
{
// GET: Cas
public ActionResult Index()
{
Db db = new Db();
ViewBag.Categories = new SelectList(GetCategoryList(), "CategoryId", "CategoryName");
return View();
}
public List<Category> GetCategoryList()
{
Db db = new Db();
List<Category> categories = db.Category.ToList();
return categories;
}
public ActionResult GetProductList(int catId)
{
using (Db db = new Db())
{
List<Product> prList = db.Product.Where(x => x.CatId == catId).ToList();
ViewBag.ProductOPtions = new SelectList(prList, "ProductId", "ProductName");
return PartialView("DisplayProduct");
}
}
}
这是我的层叠类
public class CasCadingClass
{
public int CatId { get; set; }
public int PrId { get; set; }
}
这是索引视图
@model Market.Models.CasCadingClass
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@if (ViewBag.Categories != null)
{
@Html.DropDownListFor(m => m.CatId, ViewBag.Categories as SelectList, "---Select Category---", new { @class = "form-control" })
}
@Html.DropDownListFor(m => m.PrId, new SelectList(""), "--Select Product--", new { @class = "form-control" })
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function () {
$("#CatId").change(function () {
var catId = $(this).val();
debugger
$.ajax({
type: "Post",
url: "/Cas/GetProductList?catId=" + catId,
contentType: "html",
success: function (response) {
debugger
$("#PrId").empty();
$("#PrId").append(response);
}
})
})
});
</script>
//在PartielView中出现错误
@model Market.Product
<option value="">--- select Product---</option>
@if (ViewBag.ProductOPtions != null)
{
foreach (var item in ViewBag.ProductOPtions)
{
<option value="@item.value">@item.Text</option>
}
}