6

Response.Write()メソッドを使用して、aspxページの<head>セクションにコンテンツを動的に挿入しようとしています。CSSファイルへのリンクである分離コードオブジェクトのプロパティから文字列値を挿入する必要があります。ただし、実行時に適切に処理されていません。オブジェクトはクラスで公開されており、Page_Load()イベントでハイドレイトされます。ページの本文で、Corpoartionオブジェクトから他のプロパティを問題なく注入できます。

<head>セクションでこれが機能しないのはなぜですか?

これは正しく拡張されない部分です:

<link href="<%= Corporation.PageStyleSheet %>" rel="stylesheet" type="text/css" />

<head>セクション全体は次のとおりです。

<head runat="server">
    <title></title>
    <link href="<%= Corporation.PageStyleSheet %>" rel="stylesheet" type="text/css" />
    <script language="JavaScript" type="text/JavaScript" src="cntv_menu.js"></script>
    <script language="JavaScript" type="text/JavaScript" src="cntv_category.js"></script>   
</head>

これが適切に拡張されない理由は何ですか?

4

4 に答える 4

6

タグであるタグ<%= %>内で使用することはできません。runat="server"<head>

<%# %>コードビハインドでこれをに変更してDataBindに変更するか、リンクタグを作成し、それにrunat="server"を与えてid、コードビハインドから属性を割り当てることができます。

詳細については、この回答を参照してください。

于 2010-02-18T16:10:54.630 に答える
0

これを使って:

this.myButton.Attributes.Add(attribute, value);

それは私のために働いた:)

于 2017-02-23T14:54:38.967 に答える
0

この問題を解決する最善の方法は、OnPreRenderを使用することです。

例:

まず、タグを定義します。

<link href="~/css/your_default.css" type="text/css" runat="server" id="myCSS" />

そしてOnPreRenderで:

protected override void OnPreRender(EventArgs e){
     base.OnPreRender(e);
     myCSS.Attributes["href"] = "~/css/your_new.css";
}
于 2018-06-06T14:31:55.340 に答える
-1

あなたが完全な行を書き出すならば、あなたは大丈夫であるはずです:

<%
Response.write("<link href=\"" + Corporation.PageStyleSheet + "\" rel=\"stylesheet\" />");
%>

PS私の構文は完全に正しくないかもしれません、事前に申し訳ありません。

于 2010-02-18T16:15:18.283 に答える