
ASP.Netの経験がほとんどないのですが、たった一つだけしなければいけないことがあり、それができずに困っています。
マスターページに以下のような処理を入れたいのです。
<link href="main.css?<%= utils.Utility.GetLastUpdated() %>" rel="stylesheet" type="text/css" media="screen" />
この<%= utils.Utility.GetLastUpdated() %>の部分がコードが実行されず、そのまま表示されてしまいます。
とても基本的なことなのだと思いますが、やりたいことはたったのこれだけなのです。わかる方、よろしくお願いします。
No.4ベストアンサー
- 回答日時:
こんにちは。
aspx 側のコードを一切とっぱらって、コードビハインドの方に以下のコードを入れたら一応動きました。いかがでしょうか。
protected void Page_Load(object sender, EventArgs e)
{
HtmlLink cssLink = new HtmlLink();
cssLink.Href = "main.css?" + utils.Utility.GetLastUpdated();
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
cssLink.Attributes.Add("media", "screen");
this.Page.Header.Controls.Add(cssLink);
}
期待通りにCSSにクエリ文字列を追加することができました。
ASP.NETの知識がまったくなく勉強する時間もなく、それでもこの処理だけどうにか実装する必要があったのでとても助かりました。ありがとうございます。
No.3
- 回答日時:
こんにちは。
> ネームスペースにソリューション名を追加すればいいのでしょうか?
ソリューション名というか、utils.Utility クラスが属するプロジェクトがありますよね。それを右クリック→プロパティ→「アプリケーション」タブの「既定の名前空間」に書いてある文字です。
P タグでは再現しませんが、HEAD タグ内に LINK タグを同じように入れてみたところ再現しました。
周囲の HTML との関係?ちょっと原因はわからないです、すみません。
かなり力技な感じですが、以下のコードだとcss?の後に得たい値が入ると思います。
<%="<link href=main.css?" + WebApplication1.utils.Utility.GetLastUpdated() + " rel=""stylesheet"" type=""text/css"" media=""screen"" />"%>
この回答への補足
ネームスペースは utils だけでした。
<%="<link href=main.css?" + WebApplication1.utils.Utility.GetLastUpdated() + " rel=""stylesheet"" type=""text/css"" media=""screen"" />"%>
この記述を入れたら、以下のエラーが出ました。
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>)
このエラーを調べてみたら、<%= %> ではなく <%# %> を使うと良い的なことが書いてあったので試したところ、今度はエラーは消えましたが何の出力もされなくなりました(<link>タグ自体が出力されない)。
やりたいことは非常にシンプルなこと(更新した日付をクエリ文字列としてCSSファイルに付ける)なのですが、ASP.Netでは難しいのでしょうか?
No.2
- 回答日時:
こんにちは。
<%= utils.Utility.GetLastUpdated() %>
を
フルネームスペースで記述されてみてはどうでしょうか。
私の実験したソリューション、プロジェクト名:WebApplication1
自作のクラス:Site1.Master、Utility.vb、WebForm1.aspx
◆Site1.Master の aspx の body 内に一行追加
<p><%=WebApplication1.utils.Utility.GetLastUpdated()%></p>
◆Utility.vb の内容
Namespace utils
Public Class Utility
Public Shared Function GetLastUpdated() As String
Return DateTime.Now.ToString("yyyyMMddHHmmss")
End Function
End Class
End Namespace
◆WebForm1
ウィザード通りに ContentPlaceHolder を作成しただけ
この回答への補足
ネームスペースにソリューション名を追加すればいいのでしょうか?やってみましたが同じ結果で、
<%= ソリューション名.utils.Utility.GetLastUpdated() %>
と結果のHTMLには表示されます。ただそのまま表示されるのではなく、<%= が <%= と展開されているあたりもおかしな感じです。
マスターページではなく普通の.aspxファイルなら<%= utils.Utility.GetLastUpdated() %>と記述することで正常に、上記のようにコードがそのまま表示されるのではなくプログラムの結果が表示されます。
Utilityクラスは以下のように定義しています。(余計なメソッドは省略)
namespace utils {
public static class Utility {
public static string GetLastUpdated()
{
return ConfigurationManager.AppSettings["LastUpdated"];
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キヤノン アソビカメラ iNSPiC ...
-
vba マージエリアの行数を非表...
-
ffftpでファイル取得が0バイト...
-
VBAでPDFを作成する際、同じ名...
-
バッチ(bat)でリストファイルか...
-
Windowsで複数のファイルを同じ...
-
SJISで、全角文字Aの文字コード...
-
vba 空のデータをSplitする時の...
-
お世話になります。 Windows Up...
-
マクロで同じフォルダにある画...
-
エクセル・アプリケーションエ...
-
エクセルのファイル名をコピー...
-
ASP.NetでWebアプリ開発の経験...
-
エクセルに張り付けた写真のフ...
-
たくさんのフォルダーの中から...
-
SPO2測定
-
高校1年生情報の問題について。
-
エクセルのマクロについて教え...
-
インドe-Visa 承認書のApplicat...
-
SPIの非言語の割合と比が難しく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseでcssを使うためには?
-
jspでcssが読み込めない
-
flexBOX同士の間隔
-
外部スタイルシートをメモ帳で...
-
htmlの記述で link rel=styles...
-
スタイルシートのフォント指定
-
ギャオの無料映画の右クリック...
-
このVBAソースのどこが間違って...
-
text/css Style.css違いについて
-
【PHP】UA判別によるCSSの振り分け
-
【WEBデザイン】ディスプレイ環...
-
Win32版のApache
-
yahooジオシティーズでのCSS読...
-
Apache Tomcat 連携じの設定に...
-
HPビルダーでサイト全体の背...
-
MAX関数を使ってからLEFT JOIN...
-
1枚の画像をクリックすると複数...
-
javascriptテキストBOX色を元に...
-
createElementで作成した要素を...
-
JavaScriptで変更した属性の元...
おすすめ情報