【问题标题】:Asp.net Url loses page path on postbackAsp.net Url 在回发时丢失页面路径
【发布时间】:2015-10-23 16:43:25
【问题描述】:

背景: 我们正在重做我们的网站并尝试对其进行现代化改造。我们最初尝试使用 AngularJS,但由于我们的一些用户使用不受支持的浏览器而放弃了它。我们最终只制作了 VB 网络表单并更新了我们网站的设计和功能。

我遇到了导致回发的按钮或项目的问题。当页面尝试回发时,它会命中路径,但会丢失主机名和最后一个“/”之间的所有内容

例如,我在该位置设置了一个登录页面 /Secure/Account/Login.aspx

我也有一条来自 /Secure/Account/Login 的路线。

因此,当您访问您所在的页面时: www.website.com/Secure/Accounts/Login

但是,当我单击登录按钮时,我没有发回信息,而是被定向到: www.website.com/Login 不存在,所以出现错误。

如果我导航到页面而不是使用路由,就会发生这种情况。因此,如果我在 www.website.com/Secure/Accounts/Login.aspx 并单击按钮,我最终会在 www.website.com/Login.aspx 出现错误。

这不会影响根目录中的页面,只要它们不使用路由属性。我们有一些页面使用了同样问题的路由属性。

我们在根目录中有页面 /Category.aspx 与路由 /Category/{Attribute1}/{Attribute2}/ 为页面配置。

如果我在页面 www.website.com/Category/Attribute1/Attribute2 上单击一个发回按钮时,我最终会在 www.website.com/Attribute2 出现错误。

【问题讨论】:

    标签: c# asp.net vb.net webforms


    【解决方案1】:

    问题最终变成了我们使用 Angular 时的一小段代码

    在我们的母版页 .aspx 中,我们包含以下行:

    <base href="/">
    

    删除这一行,我们甚至不再需要它来解决问题。

    【讨论】: