【问题标题】:asp.net MapPageRoute loading page twiceasp.net MapPageRoute 加载页面两次
【发布时间】:2012-11-22 07:54:52
【问题描述】:

不确定发生了什么,但我用两个参数重写。由于某种原因,页面在被调用时加载了两次。我知道这是重写,因为它只是一个参数时工作正常。感谢您的帮助。

这是在我的 Global.asax 中

 routeCollection.MapPageRoute("RouteForAlbum", "album/{autoID}/{albumName}", "~/SitePages/AlbumView.aspx");

这是我的页面加载

if (!Page.IsPostBack)
{
    string id = Page.RouteData.Values["autoID"].ToString();
    string albuname = Page.RouteData.Values["albumName"].ToString();
}

【问题讨论】:

    标签: c# asp.net url-rewriting


    【解决方案1】:

    哇,经过更多搜索找到了答案。如果你有 ../ 的 javascript 引用,这会导致 URL 重写问题。 asp.net Multiple Page_Load events for a user control when using URL Routing

    【讨论】:

      【解决方案2】:

      UDPATE:

      将 CSS3PIE 与 ASP.net Routing 一起使用时也会发生这种情况,并且两者不能很好地配合使用。

      任何带有 URL 值的 CSS3PIE css 样式都可能导致目标页面多次执行后面的代码。具体来说,就是这两行:

      • 行为:url(PIE.htc);
      • -pie-background: url(bg-image.png) no-repeat, linear-gradient(#FFFFFF, #53A9FF);

      将以上两行更改为以斜杠“/”开头,同时指定文件的整个路径。

      • 行为:url(/scripts/PIE-1.0.0/PIE.htc);
      • -pie-background: url(/scripts/PIE-1.0.0/bg-image.png) no-repeat, linear-gradient(#FFFFFF, #53A9FF);

      【讨论】:

      • 另外,关于使用 asp.net 路由和执行后不必要的代码的旁注是,路由似乎还运行其他页面背后的代码,而不是在某些情况下请求的页面。经过反复试验,我注意到如果您的 routeUrl 参数(MapPageRoute 上的第二个参数)指向与请求页面不同的 routeUrl 目录,它将不会执行此操作。
      猜你喜欢
      • 2014-12-20
      • 2014-02-24
      • 2013-08-17
      • 2017-10-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      相关资源
      最近更新 更多