我在我的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内部服务器错误?当我返回其他东西时(比如词典对象),一切都正常,只有当我试图将Area对象列表转换为Json时才会出错。
Company
是否包含一个Area
集合? - user3559349Area
的哪些属性? - user3559349.Select(a => new ....
(它还有减少有效载荷的好处) - user3559349