【发布时间】:2017-03-01 18:09:35
【问题描述】:
我正在尝试使用 Ajax 获取数据,Ajax 调用工作正常,问题是它正在重新调整“无法读取未定义的属性'描述'”。代码如下:
季度模型
public class Quarters
{
[Key]
[Display(Name="Code")]
public Int32 QuarterId { get; set; }
[Display(Name = "Description")]
public String Description { get; set; }
}
月模型
public class Months
{
[Key]
[Display(Name = "Code")]
public Int32 MonthId { get; set; }
[Display(Name = "Description")]
public String Description { get; set; }
public Quarters Quarter { get; set; }
public Int32 QuarterId { get; set; }
}
控制器
public JsonResult Months(Quarters q) {
var query = from c in _context.Months where c.QuarterId == q.QuarterId select c;
return Json(query);
}
JS
$("select[name=quarters]").change(function () {
var filterData = {
QuarterId: $("select[name=quarters]").val(),
Description: $("select[name=quarters]").text()
}
$.ajax({
type: "POST",
data: filterData,
url: "/Folder/Controller/Months",
success: function (data) {
for (var i = 0; i <= data.length; i++)
console.log("Months: " + data[i].Description);
}
})
})
最好的问候
【问题讨论】:
-
什么是
dados[i].Description? dados 没有在你的 JS 代码中定义。我想应该是 data[i].Description。 -
什么是
dados?您提供的代码中没有定义 -
console.log("Months: " + data[i].Description); -
对不起,伙计们,我说的是不同的语言,dados 这意味着我的国家语言中的数据。我已经更新了代码,我仍然有同样的错误......
-
几件值得检查的事情:您是否在您的 MVC 项目中将 SerializerSettings 设置为忽略空值 (NullValueHandling.Ignore)?它是否返回所有其他属性?您在数据库中是否有所有记录的指定 QuarterId 的描述?
标签: javascript ajax asp.net-mvc