嵌套的应用程序和html标记的绝对路径



交易是,当你的网站上有以下内容时,它就会起作用:

<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,因此不需要执行任何操作。

最新更新