Bru*_*ero 44 razor asp.net-mvc-3
我的数据库中有一个表,其中一个属性是一个Html页面(没有html,head和body标签),我打算把它放在我的一个视图的中间 - 比方说,我称之为cotroller方法接受一个参数,并返回一个传递这个html大字符串作为模型的视图.我搜索了它(不多,我承认),并找到了以下方法:
<%= System.Web.HttpUtility.HtmlDecode(yourEncodedHtmlFromYouDatabase) %>
Run Code Online (Sandbox Code Playgroud)
这是在stackoverflow中找到的.当我尝试类似的剃须刀时,我最终得到了这个:
@System.Web.HttpUtility.HtmlDecode("<h1>Test</h1>")
Run Code Online (Sandbox Code Playgroud)
这是个主意,但它并没有像我计划的那样有效.
Ben*_*thy 90
所有你需要的是: @Html.Raw(yourEncodedHtmlFromYouDatabase)
我假设数据库中的html已经被正确清理(或者至少来自可靠的源),因为如果没有,你可能会打开自己的跨站点脚本攻击.
你的方法不起作用的原因是默认情况下Razor HTML编码输出(每次你@
用来显示某些东西).Html.Raw
告诉Razor您信任HTML并且您希望在不对其进行编码的情况下显示它(因为它已经是原始HTML).
Lia*_*amB 12
例如,您还可以返回HTMLString,Razor将输出正确的格式.
@Html.GetSomeHtml()
public static HtmlString GetSomeHtml()
{
var Data = "abc<br/>123";
return new HtmlString(Data);
}
Run Code Online (Sandbox Code Playgroud)
这将允许您显示HTML
归档时间: |
|
查看次数: |
34350 次 |
最近记录: |