要将服务器视图模型转换为json对象,我正在rasor视图的javascript部分中使用以下代码。
var jsonModel = @Html.Raw(Json.Encode(Model));
代码的分号用红色的波浪线标记,并弹出错误“ ESLint遇到解析错误”(使用VS 2017)。
令人惊讶的是,当我构建项目时,没有出现错误。同样在本地运行项目并发布它不会产生错误,并且页面可以正常运行。
我使用了如下语法:
var jsonModel = '@Html.Raw(Json.Encode(Model))';
然后,ESLint错误消失了,但是其他代码部分出现了语法错误。
关于暗示导致ESLint错误的原因以及如何消除它的任何提示?
感谢您的帮助。 Manu
答案 0 :(得分:1)
您可以放心地忽略解析器错误。只是剃刀无法识别有效的语法。
引用@Html.Raw(...)
时,就是将对象转换为string
,这很可能会导致您确定的其他错误。
如果您确实想避免解析器错误,则可以对其加引号,然后使用JSON.parse()
将其转换回对象
var jsonModel = JSON.parse('@Html.Raw(Json.Encode(Model))');
但这是不必要的额外开销。