5

ばかげた質問かもしれませんが、Visual Studio 2010 でこの問題が発生しています。

私のマスターページには、次のコードがあります。

<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 %>head タグの外側のどこかに配置すると正常に動作します。

これを経験したことがなく、解決した人はいますか?

アップデート:

head タグで runat="server" をオフにすると、機能します。しかし、私はそれが必要です。

編集:

これらの方法はすべて機能しますが、問題はデザイナーのサポートがないことですか?

4

5 に答える 5

5

あなたのトリックの説明:

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

答えを見つけるには、コンパイル例外を生成します。に変更App.RootPathApp.RootPaths..、ソース コードに移動します (エラー ページに表示されます)。コンパイラが次のようなものに一致する場合、対応するインスタンス<link href='' rel='' >を構築するためのコードが生成されます。HtmlLinkこれが<%=、リテラル文字列として解析し、その後エンコードする理由です。

あなたのトリックはコンパイラをごまかしていますが、これはまったく悪いことではありません。

メタタグについても同じことができると思います ( HtmlMeta)

于 2011-10-08T09:19:34.233 に答える
2

今のところ、この回避策を見つけました。この行動の理由をまだ探しています。

<link <%= "href=" +App.RootPath +"Css/style.css" %> rel="stylesheet" type="text/css" />
于 2011-10-08T09:07:49.743 に答える
2

これもうまくいくはずです。

<link href="<%= App.RootPath + "Css/style.css" %>" rel="stylesheet" type="text/css"/>
于 2011-10-08T09:27:50.883 に答える
1

私は通常使用しますResolveUrl

<link href='<%= Page.ResolveUrl("~Css/style.css") %>' rel="stylesheet" type="text/css"/>
于 2011-10-08T23:25:56.957 に答える