我几乎整天都在看这个问题,我不知道为什么它不工作。我有以下的控制器动作
public JsonResult GetSubCategory(int category) {
//var subCat = db.categories.Where(c => c.parentID == category).Select(c => new {c.ID, c.codeDesc}).ToList();
var subCat = from c in db.categories
where c.parentID == category
select new
{
ID = c.ID,
codeDesc = c.codeDesc
};
return Json(subCat);
}
我在查看文件
$("#catList").change(function() {
alert("In the change event. cat val is " + $("#catList").val());
var category = $("#catList").val()
$.getJSON("/Issues/Search/GetSubCategory", { 'category': category },
function (data) {
alert("in the func");
$("#subCatList").options.length = 0;
$(data).each(function() {
$("<option>").val(this.ID).text(this.codeDesc).appendTo("#subCatList");
});
});
});
以下jQuery的方法至少,我只是想显示警告信息,但它似乎没有不被显示。我已经尝试了两种构建subCat对象的方法,就像你在上面的控制器代码中看到的一样。调试显示数据正在使用ID和codeDesc字段和值生成,但View端没有任何事情发生。请有人帮忙弄清楚我做错了什么?
谢谢
Sods law !!!!在发布此消息后2秒,我发现在发回Json数据时必须使用POST的信息。所以我改变了上面的调用以使用.ajax()类型设置为POST,它的工作。呼! – SimpleUser
你可以回答你自己的问题,并接受答案(等待一段时间后),所以这个问题可以认为是治疗 – JMax
很高兴它被排序 - 但你实际上不必使用POST。您可以允许使用GET请求调用JsonResult:'return Json(subcat,JsonRequestBehavior.AllowGet)' –