【发布时间】:2012-08-20 03:43:46
【问题描述】:
使用 Visual Studio 2012,在 Razor 视图页面的 JavaScript 部分中,我得到了我认为是 Razor 语法与 JavaScript 语法之间的战斗。特别是,脚本部分中的尾随分号由 intellisense 标记,并传递编译器警告(不是错误):
'警告 13 语法错误'。
如果我删除它,我会收到一条语句终止建议(在这种情况下为ReSharper,但这只是一种好的做法)。
<script type="text/javascript">
$().ready(function(){
var customer = @Html.Raw(ViewBag.CustomerJSON); // <- Razor (I think) doesn't like this semicolon
});
</script>
这是 Razor 中的错误吗?如果是这样,有没有办法我可以重写它来避免这个问题?
【问题讨论】:
-
如果你真的对它不感兴趣.. 就像有些人'提示'.. 你可以做类似
@Html.Raw(ViewBag.CustomerJSON) + '';的事情,因为 JavaScript 验证器需要整数或文本。它对结果完全没有任何作用,但会删除红色曲线。Warning: Overusing this might burn your eyes later on. -
另一个 hackish 解决方法:
var data = [@Json.Encode(someObject)][0];适用于返回 JSON 对象而不是字符串或数字的 c# 调用。 -
我不建议仅仅为了缓解 IDE 问题而为每个 javascript 值创建数组。
标签: javascript asp.net-mvc razor