通过getJSON从View调用ASP MVC 3 Controller

时间:2011-08-12 10:31:15

标签: jquery asp.net-mvc getjson

我正在使用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 个答案:

答案 0 :(得分:2)

首先,尝试直接从浏览器调用此操作:例如http://localhost:1212/Account/CheckUsername。如果出现错误,你会看到它。我假设您应该使用JsonRequestBehavior.AllowGet使其工作,因为getJSON发送HTTP GET。

return Json(test, JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

尝试使用,

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

当您要部署网站时,使用"/Account/CheckUsername"会更加困难。

答案 2 :(得分:0)

$(function () {
    $.getJSON("your path here", { username: $('#Username').val() }, function (data) {
        //logic goes here
    });
});