jquery - ASP.NET MVC 用户名可用性检查

标签 jquery asp.net asp.net-mvc

我已经阅读了很多分步教程,但仍然无法让我的代码工作,我浏览了这个网站上的解决方案,但也没有运气,我不知道我做错了什么。

我正在使用 jQuery,想知道用户名“mark”是否被占用,我什至还没有达到数据库链接。

[HTML]

<input id="user_name" name="user_name" onchange="UserCheck()" type="text" value="" />
<div id="status" />

[JS]

function UserCheck() {
    $("#status").html("Checking....");
    $.post("/user/check",
    { username: $("#user_name").val() },
    function (data) {
        if (data == 0) {
            $("#status").html("Available");
        }
        else {
            $("#status").html("Taken");
        }
    });
}


[Controller]

public JsonResult check(FormCollection form)
{
    System.Threading.Thread.Sleep(3000);
    string name = form["username"];

    if (name.Equals("mark")){
        return Json(1);
    } else {
        return Json(0);
    }
}

最佳答案

查看以下链接:

Check Instantly If Username Exists - ASP.NET MVC Remote Validation

这里您需要的是您正在检查的属性的RemoteAttribute,并且您还需要实现一个 Controller 操作,该操作返回带有 bool 值的JsonResult

这是一个简短的示例:

您的型号:

    [Required]
    [Display(Name = "User name")]
    [Remote("doesUserNameExist", "Account", HttpMethod = "POST", ErrorMessage = "User name already exists. Please enter a different user name.")]
    public string UserName { get; set; } 

您的操作结果:

[HttpPost]
public JsonResult doesUserNameExist(string UserName) {

    var user = Membership.GetUser(UserName);

    return Json(user == null);
}

您可以根据需要调整操作结果内的业务逻辑。

此外,请确保您的注册页面上引用了以下库以及 jQuery 文件:

jquery.validate.min.js

jquery.validate.unobtrusive.min.js

上面的博文涵盖了您需要的一切。

注意

请记住,远程验证不会在服务器端启动。您可能想检查以下链接以进行服务器端远程验证(尽管我不建议在生产中使用它,它充满了漏洞,但它会给您一个想法):

http://www.tugberkugurlu.com/archive/asp-net-mvc-server-side-remote-validation

关于jquery - ASP.NET MVC 用户名可用性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200238/

相关文章:

javascript - 我如何从递归 $.each 中的对象中删除元素?

jquery - 改变图像CSS jquery的动画

重新启动后,asp.net 站点需要一段时间才能加载

asp.net - Tortoise SVN 操作后文件丢失 IIS_IUSRS 权限

c# - 在 MVC View 中获取模型类型

c# - 将复杂对象模型绑定(bind)到 View

javascript - 单个页面中的多个 Bootstrap 模态

javascript - 当JQuery更改功能被触发时

c# - 尝试访问 ASP.Net 中捆绑的 slick.css 文件时出现 "forbidden error"

c# - 如何在 ASP.NET MVC 的 View 中调用多个操作?