MVC2 Json请求实际上没有命中控制器

时间:2010-04-30 17:57:17

标签: json asp.net-mvc-2

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

是否有人因为不正确或者请求无法传递给服务器端而跳出任何人?

2 个答案:

答案 0 :(得分:1)

查看Firebug或Fiddler中的GET

或者:

  • 没有GET,在这种情况下,您的浏览器缓存了上次的结果(咳嗽,IE,咳嗽);更改响应的缓存策略。
  • 有一个GET,但它与您的路线不符;根据需要修复路由或JavaScript。

答案 1 :(得分:0)

事实证明,如果Area名称和Controller名称相同,看起来MVC会有点混乱。我不确定这是我身边的错误,还是MVC的错误,但是当我从Json请求中的名称中删除“/”时(即“管理/行动”而不是“/ Administrative / Action”)它工作得很好。一位同事就是那个想出这个问题的同事,他找到了一些论坛回应并告诉我他们做了什么。一旦我删除了“/”它就可以了。