マスターページでResolveUrl問題
-
24-09-2019 - |
質問
さて、
私はそれが奇妙である知っているが、私はmaster.pageに<head runat="server"></head>
の間で、このコードを配置する場合、これはにレンダリングする方法です。
<link id="ctl00_Link1" rel="shortcut icon" href="../%3C%25%20ResolveUrl(%22~/Resources/Pictures/Shared/Misc/favicon.ico%22);%20%25%3E" type="image/x-icon" />
これは、asp.netでの世話をするために必要なものが表示されません。
これは、元のコードであります
<link id="Link1" rel="shortcut icon" href='<%=ResolveUrl("~/Resources/Pictures/Shared/Misc/favicon.ico") %>' type="image/x-icon" runat="server" />
基本的にAsp.Netは、以下のコードの世話をし、通常のHTMLとしてレンダリングされません。
私はこの問題を乗り越えることができますどのように?
事前のおかげで...
を編集して解決済みの
オーケー人は、これを行うための方法はありません。
:ResolveUrlまたはResolveClientUrlはこれらのみ以下のために働いているので、私は最終的に考え出しました@import '<%= ResolveUrl("~/Resources/Styles/MainMaster/MainDesign.css") %>';
<script src='Resources/Scripts/Libraries/jquery-1.4.2.js' type="text/javascript"</script>
:あなたは次のようにbodyタグにリンク要素を配置する必要がありますので、は、リンクのためにあまりにもリテラルです
<body>
<link id="iconOne" rel="shortcut icon" type="image/x-icon" href="Resources/Pictures/Shared/Misc/favicon.ico"/>
<link id="iconTwo" rel="icon" href='Resources/Pictures/Shared/Misc/favicon.ico' type="image/ico" />
</body>
解決
runat="server"
を持っていたので、だから、あなたはあなたの最初の問題に走った理由でした。そのサーバーコントロールなので、あなたのスクリプトレットタグ(<%= %>
は)本当に、そのサーバーコントロールのプロパティので、それはリテラルテキストとして扱いされて、何もしていないされます。
それを処理するには2つの方法があります。まず、起動を ClientScriptManager に登録することですスクリプト。これは、Microsoftは、あなたがそれを行う必要があると言う方法である、身体の内側にあなたのリンクタグを置くが、審美的にその素敵ではないでしょう。他のオプションは、あなたのPage_Loadでこのような何かを行うことです。
var link = new HtmlGenericControl("link");
link.Attributes.Add("rel", "shortcut icon");
link.Attributes.Add("src", ResolveUrl("~/Resources/Pictures/Shared/Misc/favicon.ico"));
link.Attributes.Add("type", "image/x-icon");
Header.Controls.Add(link);
これは、プログラムで制御を構築し、その後、あなたはheadタグの最後に欲しいものとしてレンダリングされる、ヘッド上のコントロールのコレクションに追加します。この通報は、そのaは、あなたがそれで逃げることができるかどうかのレベルの背後にあるコードでコントロールコレクションをmonkeying避けるために、より多くの仕事をビット、およびその優れたということです。
他のヒント
それはそれはもう少し、それは必要以上に複雑になっている可能性があります。アイコンパスに~
を使用して、そして<head runat="server">
を設定するだけで試したことがありますか?
<head runat="server">
...
<link rel="icon" href="~/Resources/Pictures/Shared/Misc/favicon.ico"
type="image/x-icon" />
<link rel="shortcut icon" href="~/Resources/Pictures/Shared/Misc/favicon.ico"
type="image/x-icon" />
...
</head>
の関連SOの答えの:ファビコン表示されないの