问题描述
我使用asp.net,jQuery和ajax创建了级联下拉列表,但显示了500错误(内部服务器错误),任何人都可以帮助我plzz :(?
这是我在控制器中的功能
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>();