9

我正在将现有网站转换为使用 MVC 和实体框架。

布局/样式都应该保持不变,为了遵循该准则,我需要使用<a>标签提交我的登录表单,因为它具有按钮的自定义图像。

这是我的表格:

@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { id = "login", action = "Login" }))
{
    <label>
        <span>Username
        </span>
        <input type="text" name="UserName" id="UserName" class="input-text required" />
    </label>
    <label>
        <span>Password
        </span>
        <input type="password" name="Password" id="Password" class="input-text required" />
    </label>
    <label>
        <input type="checkbox" name="RememberMe" id="RememberMe" class="check-box" />
        <span class="checkboxlabel">Remember Me</span>
    </label>
    <div class="spacer">
        <a href="javascript:void(0)" onclick="login();" class="login-button"></a>
    </div>
}

如您所见,该<a>标签以前使用 javascript 提交登录信息。这不是我想要完成的。

如何更改该标签以将我的表单提交给我的控制器操作?

4

3 回答 3

10

我做了一些小改动

HTML

<form action="test.aspx" type="POST">
    <label>
        <span>Username</span>
        <input type="text" name="UserName" id="UserName" class="input-text required" />
    </label>
    <label>
        <span>Password</span>
        <input type="password" name="Password" id="Password" class="input-text required" />
    </label>
    <label>
        <input type="checkbox" name="RememberMe" id="RememberMe" class="check-box" />
        <span class="checkboxlabel">Remember Me</span>
    </label>
    <div class="spacer">
        <a href="javascript:void(0)" class="login-button">Login</a>
    </div>
</form>

jQuery

$(document).ready(function(){
   $(document).on("click",".login-button",function(){
     var form = $(this).closest("form");
     //console.log(form);
     form.submit();
   });
});

JSFiddle

于 2013-06-13T22:33:49.533 回答
7

通常,您不想在 html 标记中放置大量 javascript,但如果这只在您的解决方案中出现一次,那就没问题了。但是,如果到处都有锚标签需要使用 Gokan 的解决方案发布,那么在一个公共位置使用标记类和一些 javascript 会更好。

将您的锚标记更改为如下所示:

<a href="javascript:$('form').submit();" class="login-button"></a>
于 2013-06-13T22:33:03.290 回答
0

只需要更改Single line,因为Optimization我认为这是最好的方法。

@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { id = "login", action = "Login" }))
{
    // your HTML code
    <div class="spacer">
        <a href="" onclick='$("#login").submit()' class="login-button"></a>
    </div>
}
于 2016-08-23T12:52:01.083 回答