如何在MVC中使用按钮用于不同目的

时间:2014-12-24 07:48:49

标签: asp.net-mvc-4

我的视图中有三个按钮。所以现在我想要两个按钮回发,第三个按钮执行一些jquery。这该怎么做。就像如何使第三个按钮不回发并执行一些jquery操作。 感谢

2 个答案:

答案 0 :(得分:3)

你可以这样做

<form id="myForm">
    <%-- form data inputs here ---%>
    <button id="Postback">Postback</button>
    <button id="JavaScript">JavaScript</button>
</form>

并在javascript中

<script type="text/javascript">
      $("#Postback").click(function() {
          var form = $("form#myForm");
          form.attr("action", "@Url.Action("action","MyController")");
          form.submit();
      });

      $("#JavaScript").click(function() {
         Do your javascript something.
      });
</script>

答案 1 :(得分:1)

在HTML格式中,代码button具有attibute type

要回发数据(提交表单),您必须将type设置为submit(这是默认值,因此您可以完全删除type属性。

要执行某些JavaScript操作,您必须将type设置为button

在两个不同的提交对象中使用相同的name和不同的values

@using (Html.BeginForm("Login", "Home")
{
    <label for="login">Login:</label>
    @Html.TextBox("login", Model.Login)

    <label for="password">Password:</label>
    @Html.Password("password", "")

    <button type="submit" name="what" value="login">Log in</button>
    <button type="submit" name="what" value="register">Register</button>
    <button type="button" id="facebook">Facebook authentication</button>
}

<script>
$(function() {
    // Perform jquery action.
    $('#facebook').click(...);
});
</script>

在控制器中:

public ActionResult Login(string login, string password, string what)
{
    if (what == "login")
        . . .
    else if (what == "register")
        return RedirectToAction("Register", "Home");
}