我在数据库中检查用户名是否接受了用户名,或者是否已经使用了用户名。如果用户输入了用户名,我想显示消息。
答案 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
};
}
这显然是一个简化的解决方案,但它应该让你开始。假设这实际上就是你想要的!