1

如何在 a 中传递一个Environment.NewLine(或 a < br />) ,在 View 本身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>

注意这两个构造之间的区别。您将得到以下结果:

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

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

因此,第一个示例用法回答了您的问题。关键是不要对字符串进行编码,这与我一开始所理解的相反。第二个构造,<%: %>使用 .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 回答
0

用这个:

TempData["MsgString"] = MvcHtmlString.Create("No Data" + "<br />" + "For Something");

或者,使用变量:

TempData["MsgString"] = MvcHtmlString.Create(Strings.StrNoData + "<br />" + Strings.StrSomething);
于 2018-12-05T19:44:58.923 回答