Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC2 Json请求未实际命中控制器_Json_Asp.net Mvc 2 - Fatal编程技术网

MVC2 Json请求未实际命中控制器

MVC2 Json请求未实际命中控制器,json,asp.net-mvc-2,Json,Asp.net Mvc 2,我有一个JSON请求,但它似乎没有击中控制器。以下是jQuery代码: $("#ddlAdminLogsSelectLog").change(function() { globalLogSelection = $("#ddlAdminLogsSelectLog").val(); alert(globalLogSelection); $.getJSON("/Administrative/AdminLogsChangeLogSelection",

我有一个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”


有没有什么东西会让人觉得不正确,或者为什么请求不会传递到服务器端?

查看Firebug或Fiddler中的
GET

要么:

  • 没有
    GET
    ,在这种情况下,浏览器缓存了上次的结果(cough,即cough);更改响应上的缓存策略
  • 有一个
    GET
    ,但它与您的路线不匹配;根据需要修复路由或JavaScript
事实证明,如果区域名称和控制器名称相同,MVC看起来有点混乱。我不确定这是我自己的错误,还是MVC的问题,但是当我从Json请求的名称中删除“/”时(即“administration/Action”而不是“/administration/Action”),它就可以正常工作了。一位同事帮我解决了这个问题,他在论坛上找到了一些回应,并向我展示了他们的做法。一旦我删除“/”,它就工作得很好。

哈哈哈……是的……我喜欢IE的评论!肯定试过了…看看我的“解决方案”吧!如果没有
/
,则有一个相对URI。有了它,您就有了一个绝对URI。所以这是你的错误。:)但奇怪的是,我还有几个其他的区域,这些区域中的所有Json请求在URI前面都有“/”,我没有遇到任何问题。哦,好吧……这很有效……所以我不会抱怨:)是的,因为你在网站的其他地方。“相对”是指相对于当前页面。对我不起作用。我的浏览器仍然要求我保存JSon文件。