0

次のようにaspxで記述します。

<link type="text/css" href='/theme<%=theme%>/top.css' rel="stylesheet" />

しかし、結果は次のとおりです。

<link type="text/css" href="/theme&lt;%=theme%>/top.css" rel="stylesheet" />

驚くべきことに、js での使用は問題ありません。

4

2 に答える 2

3

これは、runat server でlinkあるタグ内にあるためです。<head>ヘッドタグは「スマート」です。<link>タグを検出すると、アプリケーションの相対パス構文 ~/ を実際に使用できます。したがって、( head タグ内で) 実行する場合:

<link href="~/Content/Site.css" rel="stylesheet" />

runat サーバーとはどこにも書いていませんが、実際に機能することがわかります (つまり、チルダがサイトの適切な場所に展開されます)。もちろん、欠点は、それをしたくない場合です。:) おそらく最も簡単な解決策は、次のように手動でタグを作成することです。

<%= "<link type=\"text/css\" href='/theme" + theme + "/top.css' rel=\"stylesheet\" />" %>
于 2012-06-12T02:46:20.067 に答える
0

式を使用することはできません<head runat="server">。代わりに、Page_Load イベントに次のコードを記述して挿入する必要があります。<link/>

HtmlLink link = new HtmlLink();
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "Stylesheet");
link.Attributes.Add("href", "/theme" + theme + "/top.css");
Header.Controls.Add(link);
于 2012-06-12T02:59:27.857 に答える