在asp.netmvc4中为textboxfor创建了keydown

时间:2014-10-15 12:28:56

标签: jquery asp.net-mvc-4 razor

我正在使用asp.net mvc4和模型方法,我没有ajax调用。我想在textboxfor上输入密钥时提交表格(当用户按下输入时,应在密码文本框中提交) 下面是我的视图和控制器代码。

查看

@using (Html.BeginForm()) {    
@Html.ValidationSummary(true)

<table>
    <tr>
        <td  style="width:100px">
            @Html.LabelFor(m => m.UserName)
        </td>
        <td>


            @Html.TextBoxFor(m => m.UserName)
            @Html.ValidationMessageFor(m => m.UserName)
        </td>
    </tr>
    <tr>
        <td style="height:10px"></td>
    </tr>
    <tr>
        <td style="width:100px">
            @Html.LabelFor(m => m.Password)
        </td>
        <td>


            @Html.PasswordFor(m => m.Password)
            @Html.ValidationMessageFor(m => m.Password)
        </td>
    </tr>
    <tr>
        <td style="height:20px"></td>
    </tr>
    <tr>
        <td></td>
        <td style="text-align:right">
            <input type="submit" value="Log in" />    
        </td>
    </tr>
</table>            
}

控制器

    [HttpPost]
    [AllowAnonymous]        
    public ActionResult Login(LoginModel model, string returnUrl)
    {
        if (ModelState.IsValid && AuthorizeUser(model.UserName, model.Password))
        {
            Session["sessionUserId"] = model.UserName;

            return RedirectToAction("Index", "Home");
        }

        // If we got this far, something failed, redisplay form
        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return View(model);
    }

2 个答案:

答案 0 :(得分:0)

查看生成的HTML也会有所帮助,而不是源代码,因为这是客户端问题,但是您需要在页面上的脚本块中执行类似的操作:

$(function(){
    $('input[type="password"]').on("keypress", function(e) {
        if (e.keyCode == 13) {
              // press the submit button
              $('form input[type="submit"]').click();
        }
    });
});

答案 1 :(得分:0)

您需要使用以下

@using (Ajax.BeginForm("Login","ControllerName", new AjaxOptions{HttpMethod="post"})) {  

此代码会直接点击Login post type action