2011-10-08 48 views
3

也許它是一個愚蠢的問題,但我在Visual Studio 2010中這個問題:Asp.net定界符<%替換爲頭標記中的<%?

在我的母版頁,我這個代碼:

<head runat="server"> 

    <title>App Title</title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
    <link href="<%= App.RootPath %>Css/style.css" rel="stylesheet" type="text/css" /> 
</head> 

一些奇怪的原因,<%在改變運行時與&lt;%

如果把頭部標籤以外的任何地方<%= App.RootPath %>工作正常。

任何人從來沒有經歷過這一點,並解決?

UPDATE:

如果我在頭標記推遲RUNAT = 「服務器」,它的工作原理。但我需要它。

編輯:

所有這些方法的工作,但問題是缺乏設計師的支持?

+0

檢查其主題相關http://stackoverflow.com/questions/1874875/link-rel-stylesheet-type-text-css-href-resolveurl -CSS試驗CSS – Crimsonland

+0

我讀過,但它已經錯過了等號(=),所以並不適用於這種情況下 –

回答

2

現在,我已經發現這個workaroud;仍然在尋找這種行爲的原因。

<link <%= "href=" +App.RootPath +"Css/style.css" %> rel="stylesheet" type="text/css" /> 
+0

很長的路要走:http://forums.asp.net/t/1274180.aspx –

3

你招的解釋:

<link <%= "href='" +App.RootPath +"Css/style.css'" %> rel="stylesheet" type="text/css" /> 

爲了找到答案生成編譯例外。將App.RootPath更改爲App.RootPaths..,然後導航到源代碼(它將顯示在錯誤頁面中)。如果編譯器匹配<link href='' rel='' >之類的東西,那麼它將生成代碼來構建相應的HtmlLink實例。所以這就是爲什麼它將<%=解析爲字符串,然後對其進行編碼。

你的伎倆欺騙編譯器,這是不壞的。

我相信它做同樣的事情meta標籤,(HtmlMeta

2

這應該工作了。

<link href="<%= App.RootPath + "Css/style.css" %>" rel="stylesheet" type="text/css"/> 
1

我通常使用ResolveUrl

<link href='<%= Page.ResolveUrl("~Css/style.css") %>' rel="stylesheet" type="text/css"/> 
相關問題