пытается создать каскадное dropdownmenu с jsonresult и ajax, но я не могу понять, почему я получаю 500 Internal Server Error. Ошибка возникает над следующим способом:500 Внутренняя ошибка сервера JsonResult mvc asp.net
[HttpGet]
public JsonResult GetModels(string brandID="")
{
List<Model> models = new List<Model>();
int ID = 0;
if (int.TryParse(brandID, out ID))
{
using (CarsEntities1 dc = new CarsEntities1())
{
models = dc.Models.Where(a => a.Brand_ID == ID).OrderBy(a =>a.Model_name).ToList();
}
}
if (Request.IsAjaxRequest())
{
return new JsonResult
{
Data = models,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
else
{
return new JsonResult
{
Data = "Not valid request",
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
я использую метод передать список элементов в DropDownMenu и попытаться вывести список с помощью следующего кода:
$(document).ready(function() {
//if (typeof ($) == 'function') alert('jQuery is loaded.');
$("#brand_Brand_ID").change(function() {
// this will call when Brand Dropdown select change
var brandID = parseInt($("#brand_Brand_ID").val());
if (!isNaN(brandID)) {
var ddModel = $("#Model_ID");
ddModel.empty(); // this line is for clear all items from Model dropdown
ddModel.append($("<option></option").val("").html("Select model"));
// Here I will call Controller Action via Jquery to load Model for selected Brand
$.ajax({
url: "@Url.Action("GetModels","ModelSpec")",
type: "GET",
data: { brandID: brandID },
dataType: "json",
success: function (data) {
if (data != null && data.success) {
$.each(data, function (i, val) {
ddModel.append(
$("<option></option>").val(val.Model_ID).html(val.Model_name)
);
});
}
},
error: function() {
alert("Fail");
}
});
}
});
});
Все я получаю является следующие: GET http://localhost:2508/ModelSpec/GetModels?brandID=2 500 Внутренняя ошибка сервера jquery-1.7.1.js (строка 8102)
Также я заметил, что ошибка не возникает, когда нет данных, проходящих через метод GetModels. И иногда я получаю: GET/ModelSpec/GetModels? BrandID = 5 401 Несанкционированный
Как только GetModels возвращает что-либо, ошибка возникает иначе.
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection
StackTrace: http://pastebin.com/3aXg7YiM
Не могли бы вы вставить описание ошибки? Он будет доступен в обратном вызове ошибки или даже с помощью инструментов разработчика. – gustavodidomenico
Кроме того, вы можете поместить контрольные точки в действие, чтобы увидеть, где он не работает. –
Вы можете заменить 'string brandID =" "' в объявлении метода на 'int brandID'. Затем вы можете удалить этот элемент управления: 'int.TryParse (brandID, out ID)'. Возможно, это решит проблему, но, вероятно, нет. Не могли бы вы попробовать? – erikscandola