Razor View Engineを使用すると、文字列をページに直接出力するたびに、HTMLエンコードされます。例えば:新しいRazor View Engineでは、HtmlHelpersが文字列またはIHtmlStringを返すべきですか?
としてブラウザに表示されます<p>Hello World </p>
:
<P>のHello World </P >
@"<p>Hello World</p>"
は、実際には、ページへの出力が得られます
これは問題ですが、Htmlヘルパーを作成するときに、今までは古いaspxビューエンジンを使用していましたが、文字列をブラウザに出力します。
<%= Html.MyCoolHelperMethod(); %>
私の質問は基本的にこれです。私はちょうど私のCSHTMLでこれを行うことができ、その場合には
public static IHtmlString MyCoolHelperMethod(this HtmlHelper helper)
{
return new helper.Raw("<p>Hello World</p>");
}
:
@Html.MyCoolHelperMethod();
または私はこれを行うか:私はする必要があり、その場合に
public static string MyCoolHelperMethod(this HtmlHelper helper)
{
return "<p>Hello World</p>";
}
を私はこれを行うのですか私のcshtmlで仕事をしてください:
@Html.Raw(Html.MyCoolHelperMethod());
明らかに最初の承認achはビューをもっときれいに見せてくれますが、実際に助手がIHtmlString
を返すのが共通のパターンであるかどうか、私は過去に間違っていますか?
これを見てください:http://stackoverflow.com/questions/2293357/what-is-an-mvchtmlstring-and-when-should-i-use-itあなたはIHtmlStringを返すべきです – LukLed