2013-07-31 62 views
1

交易的绝对路径是,当你有你的网站下面的工作原理:嵌套应用程序和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> 

的问题是,什么是解决嵌套应用路径的优选方法?

回答

1

您想使用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,所以你不需要做任何事情。

+0

我一直在使用ASP.Net控件应该小气的印象。我确实看过你的建议以及我列出的两个建议,但没有看到对页面浏览状态的任何负面影响。 –

+0

您可以使用超链接和图像控件。但是,为了维护和代码清洁,您需要使用服务器控件。此外,如果您需要附加事件,则需要使用服务器控件。如果你真的想控制html,你可能要考虑研究ASP.Net MVC。 – Win