【问题标题】:Unterminated String Constant MVC4 Razor View Engine未终止的字符串常量 MVC4 Razor 视图引擎
【发布时间】:2014-10-28 20:00:30
【问题描述】:

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

未终止的字符串常量

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

但是从那里看到它清楚地说明了上述错误:

为什么会这样?

【问题讨论】:

  • 什么版本的 Visual Studio?

标签: asp.net-mvc-4 razor


【解决方案1】:

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

【讨论】:

  • 错误并没有消失。它仍然说同样的错误.. :(
  • 也许这是他们在 VS 2013 的更新之一中修复的问题。
  • 可能是,但到目前为止我从未使用过VS 2013。
  • @DeadLock,编辑了答案。这应该适用于 VS 2012。
  • 因为它是一个错误。我在 VS 2013 Update 3 中测试了按钮的原始代码,没有收到错误或警告。
猜你喜欢
  • 1970-01-01
  • 2011-04-27
  • 2011-07-24
  • 2018-09-16
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多