很久以前我们将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重写的页面上。
答案 0 :(得分:0)
我会改用MVC方法:
<%= Url.Content("~/this/is/nice") %>
对其中一个执行相同操作的Web窗体方法:
<%#ResolveClientUrl("~/this/is/nice")%>
<%#ResolveUrl("~/this/is/nice")%>
ResolveUrl返回相对于站点根目录的路径,而ResolveClientUrl返回相对于当前页面的路径。