2013-07-31 94 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