1

ビュー自体の内部 で実数としてレンダリングされる a内にEnvironment.NewLine(または a < br />)を渡すにはどうすればよいですか?ViewData["msg"]<br />

私はC#を使用しています...

4

3 に答える 3

9

簡単に使用できます

HttpUtility.HtmlEncode("<br />");

詳しくはこちらをご覧ください。

編集

申し訳ありませんが、私は最初の質問を理解していませんでした。渡された文字列をエンコードしたいと思っていました。質問を読むのが速すぎることがあります:)

とにかく、あなたの質問に完全に答えるには、これらのサンプルを見てください。アクションに次のものがあるとします。

[HttpGet]
public virtual ActionResult Index() {
    ViewData["Message"] = "This is a test." + "<br />" + "Does it work?";
    return View();
}

そして、あなたの見解では、

<p>Sample 1: <br /><%= ViewData["Message"]%></p>
<p>Sample 2: <br /><%: ViewData["Message"]%></p>

2 つの構造の違いに注目してください。次の結果が得られます。

Sample 1: 
This is a test.
Does it work?

Sample 2: 
This is a test.<br />Does it work?

したがって、最初の使用例はあなたの質問に答えます。重要なのは、最初に理解したのとは対照的に、文字列をエンコードしないことです。2 番目のコンストラクトは、<%: %>.NET 4.0 を使用している場合に使用できるを使用するもので、レンダリングするすべての文字列を自動的にエンコードします。

この最新の構成を引き続き使用し、文字列がエンコードされないようにする場合は、トリックを使用する必要があります。文字列がすでにエンコードされており、再エンコードする必要がないことをコンストラクトに伝えるだけです。これを実現するには、このサンプル コードを使用します

[HttpGet]
public virtual ActionResult Index() {
    ViewData["Message2"] = MvcHtmlString.Create( "This is a test." + "<br />" + "Does it work?" );
    return View();
}

ビューでは通常、<%: %>構造を使用します

<p>Sample 3: <br /><%: ViewData["Message2"]%></p>

MvcHtmlString の使用とその仕組みの詳細については、SO に関するこの質問を参照してください。

チャオ!

于 2010-11-25T00:31:41.960 に答える
0

ViewData 文字列自体の中で \n または \r を試しましたか?

于 2010-11-24T23:12:14.327 に答える