У меня есть простой метод в моем MVC-контроллере:
[HttpPost]
public JsonResult GetAreasForCompany(int companyId)
{
var areas = context.Areas.Where(x => x.Company.CompanyId == companyId).ToList();
return Json(areas);
}
Это объект области:
public class Area
{
public int AreaId { get; set; }
[Required]
public string Title { get; set; }
public bool Archive { get; set; }
public virtual Company Company { get; set; }
}
И вот как я вызываю метод из представления:
$.ajax({
url: '@Url.Action("GetAreasForCompany")',
type: 'POST',
async: false,
data: "{'companyId': " + companyId + "}",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
error: function () {
alert("Server access failure!");
},
success: function (result) {
response = result;
}
});
Я проверил метод в контроллере и создал список объектов Area. Если у вас возникнет какая-либо идея, почему я получаю ошибку внутреннего сервера 500 при вызове метода из представления? Когда я возвращаю что-либо еще (например, объект Dictionary), все работает отлично, просто когда я пытаюсь преобразовать список областей в Json, я получаю сообщение об ошибке.