Razor默认对字符串进行编码。没有编码的渲染有什么特殊的语法吗?
发布于 2010-12-22 01:53:01
从ASP.NET MVC3开始,您可以使用:
@Html.Raw(myString)
发布于 2010-11-02 01:53:37
@(new HtmlString(myString))
发布于 2011-06-29 16:05:06
以及前面提到的@Html.Raw(字符串)方法,如果您输出一个MvcHtmlString,它将不会被编码。在向HtmlHelper添加自己的扩展时,或者从视图模型返回一个可能包含html的值时,这会很有用。
例如,如果视图模型是:
public class SampleViewModel
{
public string SampleString { get; set; }
public MvcHtmlString SampleHtmlString { get; set; }
}
对于核心1.0+ (和MVC 5+),使用HtmlString
public class SampleViewModel
{
public string SampleString { get; set; }
public HtmlString SampleHtmlString { get; set; }
}
然后
<!-- this will be encoded -->
<div>@Model.SampleString</div>
<!-- this will not be encoded -->
<div>@Html.Raw(Model.SampleString)</div>
<!-- this will not be encoded either -->
<div>@Model.SampleHtmlString</div>
https://stackoverflow.com/questions/4071602
复制相似问题