SF *_*per 1 asp.net-mvc viewdata newline
如何将一个Environment.NewLine(或一个< br />)内部ViewData["msg"]
渲染为一个真实<br />的视图内部?
我正在使用C#...
你可以简单地使用
HttpUtility.HtmlEncode("<br />");
Run Code Online (Sandbox Code Playgroud)
请查看此处了解更多详情.
编辑:
对不起,但我一开始并不理解这个问题.我以为你想编码传递的字符串.有时我读得太快了:)
无论如何要完全回答你的问题,看看这些样本.假设你的行动有:
[HttpGet]
public virtual ActionResult Index() {
ViewData["Message"] = "This is a test." + "<br />" + "Does it work?";
return View();
}
Run Code Online (Sandbox Code Playgroud)
在你看来,你有
<p>Sample 1: <br /><%= ViewData["Message"]%></p>
<p>Sample 2: <br /><%: ViewData["Message"]%></p>
Run Code Online (Sandbox Code Playgroud)
注意两个构造之间的区别.您将获得以下结果:
Sample 1:
This is a test.
Does it work?
Sample 2:
This is a test.<br />Does it work?
Run Code Online (Sandbox Code Playgroud)
所以第一个样本用法回答了你的问题.关键是不要编码字符串,而不是我在开始时理解的.第二个构造,即使用<%: %>.NET 4.0时可用的构造,自动编码它呈现的每个字符串.
如果你仍然想要使用这个最新的构造并避免字符串被编码,你必须使用一个技巧.只需告诉构造该字符串已经编码,并且不需要重新编码.要实现此目的,请使用此示例代码
[HttpGet]
public virtual ActionResult Index() {
ViewData["Message2"] = MvcHtmlString.Create( "This is a test." + "<br />" + "Does it work?" );
return View();
}
Run Code Online (Sandbox Code Playgroud)
并且在视图中通常使用<%: %>构造
<p>Sample 3: <br /><%: ViewData["Message2"]%></p>
Run Code Online (Sandbox Code Playgroud)
有关使用MvcHtmlString及其工作原理的更多详细信息,请参阅SO 上的这个问题.
再见!
| 归档时间: |
|
| 查看次数: |
6335 次 |
| 最近记录: |