在Razor中生成“安全”JavaScript字符串的正确方法是什么?

时间:2013-12-26 12:42:16

标签: javascript asp.net-mvc razor

Razor会自动编码字符串。

但我很困惑如何处理在Razor中生成的JS字符串:

var result = someFunction('@Model.SomeString');

据我所知,Razor将html编码SomeString,但这并不意味着它将是有效的JS字符串。
我想我可以使用HttpUtility.JavaScriptStringEncode方法。但是,我应该让Razor进一步包含这个字符串或使用Html.Raw()

@{ var str = HttpUtility.JavaScriptStringEncode(Model.SomeString);}
var result = someFunction('@str');

var result = someFunction('@Html.Raw(str)');

如果这个字符串随后在JS代码中的某个地方被用作生成的html的内部文本,那么它何时被正确编码以避免注入呢?

0 个答案:

没有答案