我不确定我在这里做错了什么。
我有一个列表,我正在创建超链接。我需要首先将用户指向正确的页面,所以我做了一个getJson。
我的.cshtm文件中有以下代码:
$.getJSON('/Home/GetLocType', { "locId": loc.locId },
function(result) {
result = Json.stringify(result);
if(result == '1')
{
$('<li><a id=' + loc.locId + ' href="/DataEntry" rel="external">' + loc.locName + '</a></li>').appendTo("#btnList");
}
else
{
$('<li><a id=' + loc.locId + ' href="/DataEntry/PForm" rel="external">' + loc.locName + '</a></li>').appendTo("#btnList");
}
});
我在控制器中有以下代码:
private JsonResult GetLocType(int locId)
{
int locationId = Convert.ToInt32(locId);
var result = db.Locations.Where(a => a.LocID == locationId).Select(a => a.TypeId);
return Json(result);
}
我面临的问题是永远不会调用Json方法。
答案 0 :(得分:6)
您的控制器方法声明为private
- 因此无法访问。
将其更改为public
。
其次,您应该激活allow get - 默认情况下未设置原因的详细信息请参阅 - Why is JsonRequestBehavior needed?
public JsonResult GetLocType(int locId)
{
int locationId = Convert.ToInt32(locId);
var result = db.Locations.Where(a => a.LocID == locationId).Select(a => a.TypeId);
return Json(result, JsonRequestBehavior.AllowGet);
}