Каскадный DropDownList в Asp.Net Mvc - PullRequest
0 голосов
/ 05 июня 2019

Я получаю эту ошибку в PartialView при запуске проекта «Исключение типа« Microsoft.CSharp.RuntimeBinder.RuntimeBinderException »возникло в неизвестном модуле, но не было обработано в коде пользователя. Дополнительная информация: System.Web.Mvc.SelectListItem не содержит определения для значения "

. У меня есть две таблицы категорий и Product в моей базе данных с использованием EntityFramework ADO.ENTITY, и проект ASP.NET MVC. В таблице Product у меня есть ProductId, ProductName и CategoryId. Я хочусоздать Cascading из категории 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");
            }

        }
    }

А это мой класс Cascading

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>
    }

}
...