我正在研究MVC4
应用程序(Razor引擎)。当我尝试从按钮调用js函数时,它会显示错误: -
未终止的字符串常量
但是它没有给出任何compile time
或runtime
错误并且工作正常。
但是在那里可以清楚地看到上面提到的错误:
为什么会这样?
答案 0 :(得分:4)
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) )"