c# - 在 asp.net mvc 中的 javascript block 中获取特殊字符时进行转换

标签 c# javascript asp.net asp.net-mvc asp.net-mvc-3

我正在 JavaScript 中获取模型数据,它正在工作,但问题是如果有任何单引号或任何其他特殊字符,那么它就会被转换为其他格式。我的代码如下:

 function initialize() {
        var myName = '@Model.Name';
        alert(myName);
    }

最佳答案

正确的方法是使用 JSON 序列化器,就像这样:

function initialize() {
    var myName = @Html.Raw(Json.Encode(Model.Name));
    alert(myName);
}

现在,无论 Model.Name 字符串包含多么危险的字符,它都会被正确编码为 JavaScript。此外,如果您在 Visual Studio 中看到一些红色曲线,表明存在一些错误,您可以安全地忽略 Razor 语法荧光笔中的这些错误,因为它无法识别这个完全有效的代码。只需运行您的应用程序,它就会工作得非常好。

关于c# - 在 asp.net mvc 中的 javascript block 中获取特殊字符时进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20870339/

相关文章:

c# - 用于 TPL 数据流的 BroadcastCopyBlock 保证交付

c# - Visual Studio $(ProjectDir) 是空字符串

asp.net - Css 代码仅在使用类时不起作用

c# - 将变量传递给验证器

javascript - 无法使用服务人员缓存简单的 html 文件

c# - 在没有 <string>/XML 的情况下需要 JSON 中的 webService

c# - Orchard CMS : Adding default data to fields and then querying them

c# - C# 是否支持 __call__ 方法?

javascript - 如何编辑收到的 JSX 元素以将 prop 附加到其中的任何 img 元素?

javascript - Jade 条件(if/else)将类添加到 div 内联