未终止的字符串常量MVC4 Razor视图引擎

时间:2014-09-04 07:04:30

标签: asp.net-mvc-4 razor

我正在研究MVC4应用程序(Razor引擎)。当我尝试从按钮调用js函数时,它会显示错误: -

  

未终止的字符串常量

enter image description here

但是它没有给出任何compile timeruntime错误并且工作正常。

但是在那里可以清楚地看到上面提到的错误:

为什么会这样?

1 个答案:

答案 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) )"