如果用户名在mvc3中有效,我该如何显示消息

时间:2012-11-19 23:43:14

标签: javascript jquery ajax asp.net-mvc-3

我在数据库中检查用户名是否接受了用户名,或者是否已经使用了用户名。如果用户输入了用户名,我想显示消息。

1 个答案:

答案 0 :(得分:0)

我猜你使用的标签意味着你想用jQuery做这个,所以这里是:

在您看来,您将拥有一个允许用户输入用户名的文本框:

<input id="username-txt" type="text" />

您还会有一个链接或按钮,允许用户检查他们的用户名是否已被占用:

<a id="username-check" href="#">

然后你会在点击链接时调用一些javascript。 js将获取用户名并通过ajax调用您的MVC操作,并根据结果显示警告:

<script type="text/javascript" charset="utf-8">
        $(document).ready(function () {
    $("#username-check").click(function (e) {
    e.preventDefault();
    var name-to-check = $("username-txt").val();
    $.ajax({
          url: 'MyController/CheckUserName,
          type: 'POST',
          data: { username : name-to-check },
          success: function (data) {
             if (data.error != null) {
                alert(data.error_detail);
              } else {
                if(existingNames == 'true'){
                   alert('that username is taken');
                 }else{
                    alert('that username is available');
                 }
              }
          },
            error: function () {
                alert("error");
             }
         });
    });
});
</script>

此javascript可以在视图,_Layout文件或单独的.js文件中。你需要包含jQuery来实现这个目的:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>

这是您的控制器代码:

[HttpPost]
public ActionResult CheckUserName(string username)
{
   // here you'd make a database call to check if the username existed
   bool existingNames = MyService.UserNameExists(username);

return new JsonResult
 {
     Data = existingNames,
     JsonRequestBehavior = JsonRequestBehavior.AllowGet
 };
}

这显然是一个简化的解决方案,但它应该让你开始。假设这实际上就是你想要的!