将模型解析为javascript对象

时间:2016-12-20 08:07:52

标签: javascript json asp.net-mvc razor visual-studio-2013

我尝试将我的模型解析为javascript视图中的razor对象。
一切正常,直到我的模型中的某些字符串添加了\n字符。我尝试使用多种方法解决这个问题,但唯一有效的方法是在视图中给我一个语法错误:

<script>
$(document).ready(function () {
    //this one works but it's giving me a syntax error
    var model1 = @Html.Raw(Json.Encode(Model.Articles));

    //this one just returns the json string
    var model2 = '@Html.Raw(Json.Encode(Model.Articles))';

    //this raises an "unexpected token error"
    var model3 = $.parseJSON('@Html.Raw(Json.Encode(Model.Articles))');

    //also raises an "unexpected token error"
    var model4 = JSON.parse('@Html.Raw(Json.Encode(Model.Articles))');
});
</script>

我应该继续使用选项1并忽略语法错误还是有另一种方法来解决它?

2 个答案:

答案 0 :(得分:0)

我使用@Html.Raw(Json.Encode(Model.Articles))将我的模型解析为json。我会将'\n'的所有字符串替换为'\\n',这样我就不会出现语法错误(在控制器中执行此操作)

答案 1 :(得分:0)

第一种语法是正确的

var model1 = @Html.Raw(Json.Encode(Model.Articles));

“语法”错误是由于最后的;,但它是有效的,并且可以安全地忽略“错误”消息。问题是Visual Studio错误地报告错误。