如何返回仍包含标签的字符串?

时间:2012-06-21 18:47:42

标签: c# asp.net-mvc-3 razor

我试过这个简单的测试:

@functions {
 private MvcHtmlString helloWorld()
 {
    return Html.EditorFor(m => m.Work.Description);
 }
}
<script type="text/javascript">console.log(@helloWorld().ToString());</script>

但是,显示的生成的html采用

的形式
&lt;input class=&quot;text-box single-line&quot; id=&quot;Work_Description&quot;
name=&quot;Work.Description&quot; type=&quot;text&quot; value=&quot;&quot; /&gt;

如何返回

形式的字符串
<input class="test-box single-line" id="Work_Description" name="Work.Description"
type="text" value="" />

2 个答案:

答案 0 :(得分:1)

使用@Html.Raw。请注意,如果helloWorld()。ToString()包含危险代码,则可能是安全问题。

<script type="text/javascript">console.log(@Html.Raw(helloWorld().ToString()));</script>

答案 1 :(得分:0)

凯文是对的。另一件事是在模型的[AllowHtml]属性中查看属性,以及使用AntiXSSLibrary进行跨站点攻击。可在此处找到精彩视频:http://www.pluralsight-training.net/microsoft/players/PSODPlayer.aspx?author=scott-allen&name=mvc3-building-security&mode=live&clip=0&course=aspdotnet-mvc3-intro