代码之家  ›  专栏  ›  技术社区  ›  user469652

使用普通HTML按钮调用ASP.NET MVC2中的控制器?

  •  3
  • user469652  · 技术社区  · 14 年前

    我想用普通的HTML按钮来调用ASP.NET MVC2中的控制器,而不是ActionLink,这可能吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   tvanfosson    14 年前

    通常使用一个按钮,您要么使用javascript来调用操作,要么将其包装成一个表单(或者两者都使用)。

    <% Html.BeginForm( "action", "controller", new { id = Model.ID } )
       { %>
         <button type="submit">Go</button>
    <% } %>
    
    <script type="text/javascript">
        $(function() {
             $('button').click( function() {
                  var form = $('form');
                  $.post( form.attr('action'), form.serialize(), function(msg) {
                        alert(msg);
                  });
                  return false; // don't really submit the form
             });
        });
    </script>
    
        2
  •  4
  •   Gideon    14 年前

    当然,只要用 Url.Action() 将URL呈现给操作。

    <a href="<%= Url.Action("Action") %>">BLA BLA</a>
    

    <button onclick="javascript: window.location = '<%= Ajax.JavascriptEncode(Url.Action("Action")) %> '">Click me</button>
    
        3
  •  1
  •   Garry Shutler    14 年前
    <form method="get" action="YourUrl">
        <button type="submit">Click me</button>
        <input type="submit" value="Or click me" />
    </form>
    

    你可能会想用 <%= Url.Action(...) %> 用于确定 action 表单的URL。

    这不需要javascript来运行,但会得到您正在寻找的外观。这个 button 标签的样式可以比 input 类型,但它取决于您现有的样式,以及您使用的样式。它们在功能上是相同的。