如何检查mvc 3中的唯一属性?

时间:2012-10-31 04:38:50

标签: asp.net-mvc

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

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

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

</script>

现在我需要知道我是否遵循了正确的方法?如果是这样,那么请让我知道如何调用一个动作方法,该方法将与模糊功能中的数据库进行交互或以正确的方式进行?提前谢谢。

2 个答案:

答案 0 :(得分: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
    };
}

答案 1 :(得分:0)