Mik*_*oud 4 c# asp.net webforms
我维护一个ASP.NET Web窗体网站(我的意思是网站,这不是一个Web应用程序),以及一些静态链接的是因为它们与一个虚拟目录托管它打破.
http://www.somewhere.com/MyApp
Run Code Online (Sandbox Code Playgroud)
所以,我开始寻找一种方法来获得一个绝对URL给定一个页面的虚拟路径.我发现一篇文章提到你可以采取这样的链接:
<a href="/ContactUs.aspx">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)
并做这样的事情:
<a href="<%= System.Web.VirtualPathUtility.ToAbsolute("/ContactUs.aspx") %>">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)
但这甚至不在本地工作(即针对ASP.NET开发服务器),因为我的本地路径可能是这样的:
http://localhost:7766/MyApp
Run Code Online (Sandbox Code Playgroud)
但是由此产生的路径VirtualPathUtility是这样的:
http://localhost:7766/ContactUs.aspx
Run Code Online (Sandbox Code Playgroud)
所以,我决定将它部署到我的本地IIS实例,看看它的行为方式.结果是一样的.本地IIS路径是:
http://localhost/MyApp
Run Code Online (Sandbox Code Playgroud)
但是联系我们页面的路径是:
http://localhost/ContactUs.aspx
Run Code Online (Sandbox Code Playgroud)
最后一个问题,应用程序中有一个链接看起来像这样:
<asp:HyperLink id="ContactUsLink"
runat="server"
Enabled="true"
NavigateUrl="/ContactUs.aspx"
Text="Contact Us">
</asp:HyperLink>
Run Code Online (Sandbox Code Playgroud)
我之所以说这是一个顺利的原因是因为我知道内联代码(如上面的例子)不适用于服务器控件.它实际上抛出了编译器错误:
服务器标记不能包含<%...%>结构.
所以看来我显然是走错了路,我需要一些帮助.我很期待你的回答.
Adr*_*zar 11
尝试:
Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7732 次 |
| 最近记录: |