我尝试将我的模型解析为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并忽略语法错误还是有另一种方法来解决它?
答案 0 :(得分:0)
我使用@Html.Raw(Json.Encode(Model.Articles))
将我的模型解析为json。我会将'\n'
的所有字符串替换为'\\n'
,这样我就不会出现语法错误(在控制器中执行此操作)
答案 1 :(得分:0)
第一种语法是正确的
var model1 = @Html.Raw(Json.Encode(Model.Articles));
“语法”错误是由于最后的;
,但它是有效的,并且可以安全地忽略“错误”消息。问题是Visual Studio错误地报告错误。