【发布时间】:2015-07-10 19:59:21
【问题描述】:
在一个 cshtml 文件中,我将一个字符串分配给一个属性。例如:
<input name="somename" value="@Model.Value">
由于@Model.Value 字符串可以包含任何Unicode 字符,显然该字符串必须进行编码。 Razor 会自动编码这个值吗?我猜它不会或不能,因为我可以很容易地在它之后立即放置一个 @Html.Raw 以将整个内容分成两个标签。
我认为我需要做的是:
<input name="somename" value="@Html.Raw(Html.AttributeEncode(Model.Value))">
对吗?
同样,如果我在脚本的 JavaScript 字符串中嵌入字符串值,我应该使用:
//I could use Ajax instead of HttpUtility here, but Ajax just wraps the same call.
<script>$('id').data('key','@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.Value))');</script>
【问题讨论】: