MVC2 JSON-запрос не попал в контроллер - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть запрос 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 ]

1 голос
/ 30 апреля 2010

Посмотрите на GET в Firebug или Fiddler.

Или:

  • Нет GET, и в этом случае ваш браузер кэшировал результаты последнего раза (кашель, IE, кашель); изменить политику кэширования ответа.
  • Существует GET, но он не соответствует вашему маршруту; исправьте маршрутизацию или JavaScript, в зависимости от ситуации.
0 голосов
/ 30 апреля 2010

Как выясняется, если имя области и имя контроллера совпадают, похоже, что MVC немного запутался. Я не уверен, если это ошибка на моей стороне, или что-то с MVC, но когда я удаляю «/» из имени в запросе Json (т.е. «Административный / Действие» вместо «/ Административный / Действие») работает просто отлично. Коллега был тем, кто выяснил это для меня, он нашел ответ на форуме и показал мне, что они сделали. После того как я удалил "/", все заработало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...