1

我将其作为一个简单的测试进行了尝试:

@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="" />
4

2 回答 2

1

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

<script type="text/javascript">console.log(@Html.Raw(helloWorld().ToString()));</script>
于 2012-06-21T18:48:40.150 回答
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

于 2012-06-21T19:11:23.010 回答