无法显示级联下拉列表的值-500内部服务器错误

问题描述

我使用asp.net,jQuery和ajax创建了级联下拉列表,但显示了500错误(内部服务器错误),任何人都可以帮助我plzz :(?

enter image description here

这是我在控制器中的功能

        public JsonResult PopulateRecTypes(int employeeid)
    {
        MarketEntities db = new MarketEntities();
        db.Configuration.ProxyCreationEnabled = false;
        List<SelectListItem> Items = new List<SelectListItem>();
        List<marketingrectypeModel> MyRecType = (from c in db.marketingrectypes
                              join v in db.BookTypes
                              on c.id equals v.RecTypeId
                              join t in db.HandleBookReceipts
                              on v.BookTypeId equals t.BookTypeId
                              join b in db.BookResposibilities
                              on t.BookReceiptId equals b.HandleBookReceiptId
                              join x in db.Employees
                              on b.EmployeeId equals x.EmployeeId
                              where x.EmployeeId == employeeid && c.OrgId == (Int32)Session["OrgId"] && c.LicenceId == (Int32)Session["GLobalLicenseId"]
                              select new marketingrectypeModel() { id = c.id,name = c.name }).ToList<marketingrectypeModel>();


        foreach (marketingrectypeModel Recty in MyRecType)
        {

            SelectListItem selectList = new SelectListItem()
            {
                Text = Recty.name,Value = Recty.id.ToString()
            };
            Items.Add(selectList);
        }

        marketingrectypeModel Recs = new marketingrectypeModel()
    {
        MyRec = Items
    };
        return Json(Recs.MyRec,JsonRequestBehavior.AllowGet);
    }

这是我的rezor页面

@Html.DropDownListFor(x => x.ReceiptTypeId,new SelectList(string.Empty,"Value","Text"),new { @class = "form-control m-input",@id = "rectype" })

这是JavaScript代码

   $('#empList').change(function () {
        var selectedvalue = $("#empList option:selected").val();
        $.get("/BookRequests/PopulateRecTypes",{ employeeid: selectedvalue },function (data) {
            $.each(data,function (index,row) {
                $("#rectype").append("<option value='" + row.Value + "'>" + row.Text + "</option>");
            });
            
        });
    });

任何人都可以帮助我:(吗?

解决方法

您没有提供异常详细信息,但似乎实体框架存在问题。

您需要先计划会话值Session["OrgId"]Session["GLobalLicenseId"]:在将其发送出去进行翻译之前:

 var orgId = (Int32)Session["OrgId"];
 var licenceId = (Int32)Session["GLobalLicenseId"];
 
 List<marketingrectypeModel> MyRecType = (from c in db.marketingrectypes
                              join v in db.BookTypes
                              on c.id equals v.RecTypeId
                              join t in db.HandleBookReceipts
                              on v.BookTypeId equals t.BookTypeId
                              join b in db.BookResposibilities
                              on t.BookReceiptId equals b.HandleBookReceiptId
                              join x in db.Employees
                              on b.EmployeeId equals x.EmployeeId
                              where x.EmployeeId == employeeid && c.OrgId == orgId && c.LicenceId == licenceId
                              select new marketingrectypeModel() { id = c.id,name = c.name }).ToList<marketingrectypeModel>();