MVC2: Ajax-вызов всегда выполняется в функции ошибки. Зачем? В чем дело? - PullRequest
0 голосов
/ 26 августа 2010

aspx site:

<script type="text/javascript">
function AjaxTest() {

  var codeVal = "hello world";

  if (codeVal) {
    $.ajax({
             type: "POST",
             url: "CheckAge",    
             data: { code: codeVal },
             contentType: "application/json; charset=utf-8",
             dataType: "json",
             async: true,
             cache: false,
             success: function (result) {
                        alert("in ajax success");
             },
             error: function () {
                        alert("error");
             }

          });
  } 
}

Дважды проверил, что вызывается функция javascript.

Контроллер:

[HttpPost]
public JsonResult CheckAge(String code)
{
      return Json("abc");
}

Это всегда заканчивалось в ajaxошибка - функция.Функция контроллера не вызывается в любом случае.Зачем?Почему я всегда получаю ошибку?Что не так?

1 Ответ

2 голосов
/ 26 августа 2010

Проверьте ваш URL, на который вы отправляете сообщение. Кажется, вам не хватает части контроллера. Например. должно читаться /{controller}/{action}.

Если этот скрипт находится непосредственно в представлении (то есть не во внешнем файле javascript), вы можете получить что-то вроде:

$.ajax({
    type: "POST",
    url: <%= Url.Action("CheckAge", "ControllerName") %>,    
    data: { code: codeVal },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: true,
    cache: false,
    success: function (result) {
        alert("in ajax success");
    },
    error: function () {
        alert("error");
    }
});

Кроме того, я считаю полезным использовать firebug для отладки AJAX-файлов. Вы можете установить точки останова в своем javascript, а также увидеть все запросы и ответы.

HTHS
Charles

РЕДАКТИРОВАТЬ : попробуйте упростить вещи ... например,

$.post('<%= Url.Action("CheckAge", "ControllerName") %>',
       { code: codeVal },
       function (data) {
           alert("in ajax success");
       },
       "json");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...