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

在Asp.Net中从A页移动到B页。“最好”的方法是什么?

  •  0
  • Craig  · 技术社区  · 15 年前

    我有一个用户,我们称之为PageA.aspx。此用户需要访问PageB.aspx。最明显的方法是使用一个超链接,将它们简单地发送到PageB.aspx。这让我想到了其他在页面之间切换的方法。可以使用javascript进行客户端跳转。还有一个看似庞大的服务器端重定向。

    我想知道的是,如果有,这些不同方法之间的性能影响是什么。我假设服务器端的重量要重一点,但要重多少?这些方法的规模是否不同?以这种方式与另一种方式相比,是否存在任何隐藏的问题?

    谢谢

    3 回复  |  直到 14 年前
        1
  •  3
  •   Oli    15 年前

    在大多数情况下,真正的链接是最好的。所有用户代理都知道链接是什么以及它代表什么。这是最好的搜索引擎优化,可访问性和可用性。

    JS可以为您提供跟踪功能,但在禁用JS的环境中,它(自身)是无用的。将活动发送回服务器会增加负载,这是要考虑的问题。

    如果你需要的话 考虑使用标准链接并使用jQuery勾选单击事件来跟踪事件。但是真的。。。仅当您需要它时,因为它会稍微降低用户体验。

        2
  •  1
  •   Community Egal    7 年前

    我认为重要的问题是,用户为什么从PageA转到PageB?他们做了什么导致这种情况发生?

    是因为他们请求了一些不同的资源(“get”)、他们是否向您的服务器提交了数据(即,它是“post”的一部分)、用户是否知道PageA和PageB不同(它们在概念上是相同的资源,但对它的看法不同)还是其他什么?

    如果不理解这些东西,就很难给你一个“最佳”的解决方案。

    Server.Transfer Vs. Response.Redirect Response.Redirect and Server.Transfer When would I use Server.Transfer over PostBackURL?

    哦,这两种方法都不适合ASP.NET MVC应用程序,在该应用程序中,您应该改为路由到控制器上的操作。

    http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another-action-and-passing-information-to-it.aspx Redirect to action in other controller

        3
  •  0
  •   Matt Sherman    15 年前

    我的一般方法是,任何显示数据的页面都应该是get。帖子应该接受数据,但不能返回,IMHO。

    首先,它可以防止同一数据的多次发布——如果用户出于任何原因重新加载(或点击后退按钮),我不希望数据重新提交。

    搜索引擎问题也是一个重要问题。如果PageB是您想要索引的页面,则无法通过javascript或post找到它。