ASP.NET C# および Razor で変数内に HTML コードを書く 質問する

ASP.NET C# および Razor で変数内に HTML コードを書く 質問する

私は 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 は「<」と「>」を&gt;&lt;...」に変更します。これに対する解決策をご存知ですか?

もう一つ質問があります。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>

おすすめ記事