【发布时间】:2014-10-28 20:00:30
【问题描述】:
我正在开发MVC4 应用程序(Razor 引擎)。当我尝试从按钮调用 js 函数时,它会显示错误:-
未终止的字符串常量
但是它没有给出任何compile time 或runtime 错误并且工作正常。
但是从那里看到它清楚地说明了上述错误:
为什么会这样?
【问题讨论】:
-
什么版本的 Visual Studio?
标签: asp.net-mvc-4 razor
我正在开发MVC4 应用程序(Razor 引擎)。当我尝试从按钮调用 js 函数时,它会显示错误:-
未终止的字符串常量
但是它没有给出任何compile time 或runtime 错误并且工作正常。
但是从那里看到它清楚地说明了上述错误:
为什么会这样?
【问题讨论】:
标签: asp.net-mvc-4 razor
Razor 解析器很挑剔,在某些情况下,它无法正确解析语法或对语法进行颜色编码。您的代码将起作用。
要解决此问题,您可以以解析器确切知道如何解决此问题的方式格式化代码。在所有 Razor 服务器端代码引用周围使用括号:
<input type="button" id="btntest" value="Details"
onclick="ABC('@(Item.TourApplicationID)', '@(Item.TourID)')" />
编辑:上面可能只在 VS 2013 中工作,有或没有更新。 (或者根本没有——我只记得它有效。
下面应该可以工作,取自MVC3 unterminated string constant syntax error:
<input type="button" id="btntest" value="Details"
onclick="@("ABC('" & Item.TourApplicationID & "', '" & Item.TourID & "')")" />
(我认为这是正确的。没有颜色编码很难分辨。)
我更喜欢 string.format,所以 onclick 看起来更像:
onclick="@(String.Format("ABC('{0}', '{1}')", Item.TourApplicationID, Item.TourID) )"
【讨论】: