私は ASP.NET C# の初心者で、いくつか問題があります。
PHP では、変数内に HTML コードを保存できます。例:
$list = "<li>My List</li>";
echo "<ul>{$list}</ul>"; // write <ul><li>My List</li></ul>
ASP.NETとRazorでこれを試してみました
string List = "<li>My List</li>";
<ul>@List</ul>
しかし、ASP は「<」と「>」を>
「<
...」に変更します。これに対する解決策をご存知ですか?
もう一つ質問があります。PHP のように引用符内に変数を挿入できますか?
echo "<ul>{$list}</ul>";
ベストアンサー1
ご存知のとおり、Razorエンジンはデフォルトで文字列をHTMLエンコードします。この動作を回避するには、Html.Raw()
:
<ul>@Html.Raw(List)</ul>
編集
文字列内の変数をレンダリングするには、次のようにすればよいと思いますstring.Format
。
@{ var someVariable = "world"; }
@string.Format("<div>hello {0}</div>", someVariable)
ただし、次のように記述するだけでもやり過ぎのように思えます (少なくともこの例では)。
<div>hello @someVariable</div>