代码之家  ›  专栏  ›  技术社区  ›  Tom Kidd

使用ASP.NET MVC中的按钮处理页面操作的正确方法?

  •  2
  • Tom Kidd  · 技术社区  · 15 年前

    我正在用ASP.NET MVC编写一个应用程序,由于各种原因,导航是通过HTML输入按钮处理的。如何处理这种情况的最佳实践是什么?

    1. 在需要发布信息的按钮上设置表单,只需使用javascript在不需要保留信息的按钮上重定向即可。

    2. 通过表单处理所有按钮,直到迷你表单处理不需要保留信息的按钮上的导航。

      <% using (Html.BeginForm())
         { %>
      <input type="hidden" name="controller" value="1" />
      <input type="hidden" name="action" value="Location" />
      <input id="BackButton" type="submit" value="Go Back" />
      <% } %>
      
    3. 我没想到的事

    4 回复  |  直到 15 年前
        1
  •  2
  •   Alan Jackson    15 年前
    1. Javascript可能是你最好的选择。

    使用一个迷你表格似乎真的很费劲。你基本上是想用一个按钮作为链接(我会认真研究一下你为什么要打破这个非常基本的网络惯例:按钮发布/修改和链接导航),这样你就越能让它变得更好。

        2
  •  3
  •   veggerby    15 年前

    Here 你可以找到一篇很好的文章,介绍如何像按钮一样设置锚标记的样式。

        3
  •  1
  •   Joel    15 年前

    3:设置一些定位标记的样式,使其看起来像按钮。

    在最近的一个应用程序中,我们实现了选项1。客户机喜欢在所有表单上都有“取消”按钮(…),所以我们只在重置输入上粘贴了一个单击事件,它做到了:

    history.go(-1); return false;
    
        4
  •  0
  •   eu-ge-ne    15 年前

    使用空 <a href="#"> 标签和javascript/jquery。例如:

    鉴于:

    <script src="<%= Url.Content("~/Content/navigation.js") %>" type="text/javascript"></script>
    ...
    <a id="back" href="#">Back</a>
    <a id="next" href="#">Next</a>
    
    <script type='text/javascript'>
        var back_href="<%= Url.Action("...") %>";
        var next_href="<%= Url.Action("...") %>";
    </script>
    

    在navigation.js中:

    $(document).ready(function() {
        $('a#back').attr('href', back_href);
        $('a#next').attr('href', next_href);
    });