我有一个JSON请求,但它似乎没有击中控制器。这是jQuery代码:
$("#ddlAdminLogsSelectLog").change(function() {
globalLogSelection = $("#ddlAdminLogsSelectLog").val();
alert(globalLogSelection);
$.getJSON("/Administrative/AdminLogsChangeLogSelection", { NewSelection: globalLogSelection }, function(data) {
if (data.Message == "Success") {
globalCurrentPage = 1;
} else if (data.Message == "Error") {
//Do Something
}
});
});
警告是否显示我是否实际触发了更改事件。
继承控制器中的方法:
public ActionResult AdminLogsChangeLogSelection(String NewSelection)
{
String sMessage = String.Empty;
StringBuilder sbDataReturn = new StringBuilder();
try
{
if (NewSelection.Equals("Application Log"))
{
int i = 0;
}
else if (NewSelection.Equals("Email Log"))
{
int l = 0;
}
}
catch (Exception e)
{
//Do Something
sMessage = "Error";
}
return Json(new { Message = sMessage, DataReturn = sbDataReturn.ToString() }, JsonRequestBehavior.AllowGet);
}
我的应用程序中有一堆Json请求,似乎只发生在这个区域。这是一个单独的区域(我在应用程序中有6个“区域”,其中5个与JSON请求一起正常工作)。如果这很重要,那么这个控制器名为“AdministrativeController”。
是否有人因为不正确或者请求无法传递给服务器端而跳出任何人?
答案 0 :(得分:1)
查看Firebug或Fiddler中的GET
。
或者:
GET
,在这种情况下,您的浏览器缓存了上次的结果(咳嗽,IE,咳嗽);更改响应的缓存策略。GET
,但它与您的路线不符;根据需要修复路由或JavaScript。 答案 1 :(得分:0)
事实证明,如果Area名称和Controller名称相同,看起来MVC会有点混乱。我不确定这是我身边的错误,还是MVC的错误,但是当我从Json请求中的名称中删除“/”时(即“管理/行动”而不是“/ Administrative / Action”)它工作得很好。一位同事就是那个想出这个问题的同事,他找到了一些论坛回应并告诉我他们做了什么。一旦我删除了“/”它就可以了。