teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

訂正

2018/08/08 02:30

投稿

退会済みユーザー
answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  質問者さんが試した「ダブルクォーテーションを2つ付加する」と何故コードブロック ```<%= %>``` が認識されるのかのメカニズムは分かりませんが、想定外のことをして想定外の結果になったということではないかと思います。(思うだけで確証はありませんが)
17
17
 
18
- で、解決策ですが、href="<%= ... %>" と書くとコードブロックだと認識するようで、例えば以下のようにすれば、
18
+ で、解決策ですが、href="<%= ... %>" と書くとコードブロックだと認識するようで、例えば以下のようにすれば、**【訂正】間違いでした。下の【訂正 2018/8/8 11:27】を見てください。**
19
19
 
20
20
  ```
21
21
  <link href="<%= "/Content/Site.css?" + strVal %>" rel="stylesheet" />
@@ -35,4 +35,34 @@
35
35
  本題とは直接関係ないですが、データバインド式を使った場合でも似たようなことがあります。参考までにその関係の記事を紹介しておきます。
36
36
 
37
37
  データバインド式
38
- [http://surferonwww.info/BlogEngine/post/2010/08/17/Data-bind-method.aspx](http://surferonwww.info/BlogEngine/post/2010/08/17/Data-bind-method.aspx)
38
+ [http://surferonwww.info/BlogEngine/post/2010/08/17/Data-bind-method.aspx](http://surferonwww.info/BlogEngine/post/2010/08/17/Data-bind-method.aspx)
39
+
40
+ **【訂正 2018/8/8 11:27】**
41
+
42
+ 上の回答で「href="<%= ... %>" と書くとコードブロックだと認識するようで」と書きましたが、そうではなくて、```href="<%= ... %>"``` 中の ... でダブルクォートを使った影響でした。
43
+
44
+ 例えば、コードビハインドで、
45
+
46
+ ```
47
+ protected string cssPath = "/Content/Site.css?012345";
48
+ ```
49
+
50
+ として、以下のようにすると、
51
+
52
+ ```
53
+ <link href="<%= cssPath %>" rel="stylesheet" />
54
+ ```
55
+
56
+ <%= cssPath %> は文字列と認識されダメです。以下のようにダブルクォートを使って空の文字列を入れると、
57
+
58
+ ```
59
+ <link href="<%= "" + cssPath %>" rel="stylesheet" />
60
+ ```
61
+
62
+ 以下の通り望む結果が得られました。
63
+
64
+ ```
65
+ <link href="/Content/Site.css?012345" rel="stylesheet" />
66
+ ```
67
+
68
+ そのことは上に紹介した stackoverflow の記事にも書いてありました。ただ、strange だそうで、そのメカニズムは不明ですが。