0

我在表单中有一个用户名文本框,当用户输入用户名时,我需要检查该用户名是否已经在数据库中。我正在考虑捕捉文本框的模糊事件并编写一个javascript函数来查询和签入数据库。我正在尝试这样的事情:

@html.textboxfor(x=>x.UserName, new{@id="UserName"})

<script type="text/javascript">
$(document).ready(function(){$('#UserName').blur("then some code here");})

</script>

现在我需要知道我是否遵循正确的方法?如果是这样,那么请让我知道如何调用将在模糊函数中与数据库交互的操作方法,或者什么是正确的方法?提前致谢。

4

2 回答 2

0

是的,看起来没错。您可以使用 JQuery Ajax 调用以及Url.Action辅助方法。

$(document).ready(function(){
    $('#UserName').blur(function() {
        var name = this.value;
        $.get(@Url.Action("VerifyUsername") + "?name=" + value, function(result) {
            if (result.ok == false) {
                $("#message").text("Username '" + name + "' is already taken, please try another");
            }
        });
    });
});

VerifyUsername这将在当前控制器中调用一个动作。它假定该操作返回 JSON 之类{ok:true}的以验证名称:

public ActionResult VerifyUsername(string name)
{
    bool isOk;
    // check the database
    return new JsonResult() {
        Data = new { ok: isOk },
        JsonRequestBehavior = JsonRequestBehavior.AllowGet
    };
}
于 2012-10-31T04:49:01.097 回答
0

您可以在 MVC3 http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx中使用远程验证

于 2012-10-31T04:50:00.110 回答