3

所以很久很久以前,我们将 MVC 1.0 添加到现有的 ASP.NET 2.0 WebForms 站点中,并且在升级期间,我们使 MVC 的 UrlHelper 可用于我们现有的 WebForms 代码。这意味着在我们的 WebForms 代码中,我们可以执行以下操作:

<%= Url.Content("~/this/is/nice") %>

输出网址

mysite.com/this/is/nice

这很好,效果很好。

快进到最近,我们正在寻找将我们的应用程序移动到新家(新服务器)并且上述功能现在行为不端,现在:

<%= Url.Content("~/this/is/nice") %>

现在输出

mysite.com/webforms/location/this/is/nice

就好像物理位置是应用程序根目录一样 - 我不知道为什么并且在我的开发机器上重新创建它没有成功。

有没有人在那里可能是什么原因?在过去的几天里,我一直被困在这个问题上,几乎没有想法。我现在唯一的一线希望是问题发生在我同事的环境中,所以这绝对是我们可以重现的问题。

更新:它不会发生在所有 WebForms 页面上 - 只是某些页面,到目前为止我注意到的唯一不同特征是它发生在正在进行一些 Url 重写的页面上。

4

1 回答 1

0

我会从使用 MVC 方法切换:

<%= Url.Content("~/this/is/nice") %>

对于执行相同操作的 Web 窗体方法之一:

<%#ResolveClientUrl("~/this/is/nice")%>
<%#ResolveUrl("~/this/is/nice")%>

ResolveUrl 返回相对于站点根目录的路径,而 ResolveClientUrl 返回相对于当前页面的路径。

于 2014-07-14T19:15:02.997 回答