Вызов ASP MVC 3 Controller из View через getJSON - PullRequest
0 голосов
/ 12 августа 2011

Я использую плагин проверки jQuery. Чтобы проверить, существует ли имя пользователя, я сделал это на мой взгляд:

$.validator.addMethod('usernameExists', function (value) {
    var data = {};

    data.username = $('#Username').val();

    $.getJSON('/Account/CheckUsername', data, function (result) {
        if (result.exists == 'true')
            return true;
        else
            return false;
    });

    return false;
}, 'Username already exists.');

И в моем AccountController у меня есть:

public JsonResult CheckUsername(string username)
{
    string test = "false";

    return Json(test);
}

Я поставил точку останова в "CheckUsername", и он никогда не приходит туда, но доходит до вызова "getJSON" (я пробовал). Может кто-нибудь сказать мне, что я делаю не так? Очевидно, что-то не так с "getJSON" ... но что ???

Ответы [ 3 ]

2 голосов
/ 12 августа 2011

Сначала попробуйте вызвать это действие напрямую из браузера: например, http://localhost:1212/Account/CheckUsername. Если в действии будет ошибка, вы увидите ее.Я предполагаю, что вы должны использовать JsonRequestBehavior.AllowGet, чтобы заставить его работать, так как getJSON отправляет HTTP GET.

return Json(test, JsonRequestBehavior.AllowGet);
0 голосов
/ 22 мая 2014
$(function () {
    $.getJSON("your path here", { username: $('#Username').val() }, function (data) {
        //logic goes here
    });
});
0 голосов
/ 12 августа 2011

попробуйте использовать,

 $.getJSON('@Url.Action("CheckUsername", "Account")', data, function (result) {

, дальнейшее использование "/Account/CheckUsername" будет проблемой для вас, когда вы собираетесь развернуть сайт.

...