交易是,当你的网站上有以下内容时,它就会起作用:
<a href="/Some/Path/file.aspx" class="button">Click Me!</a>
但是,如果该站点是嵌套应用程序,则上述操作将失败。
我在asp.net中看到了两种解决方案。
我发现的第一个解决方案是添加以下内容:
<a runat="server" href="~/Some/Path/file.aspx" class="button">Click Me!</a>
我没有尝试过,因为我觉得这会给你的视图状态增加更多垃圾。
我尝试过的解决方案是:
<a href='<%= Page.ResolveUrl("~/Some/Path/file.aspx") %>' class="button">Click Me!</a>
问题是,在嵌套应用程序中寻址路径的首选方法是什么?
您想要使用HyperLink
服务器控件。它是为那种事情准备的。
<asp:HyperLink runat="server" ID="HyperLink1"
NavigateUrl="~/Some/Path/file.aspx"
CssClass="button">Click Me!</asp:HyperLink>
渲染为
<a id="HyperLink1" class="button" href="/Some/Path/file.aspx">Click Me1</a>
ASP.Net HyperLink控件使用ResolveClientUrl
来解析给定的url,因此不需要执行任何操作。