2014-09-04 132 views
6

我正在處理MVC4應用程序(Razor引擎)。當過我嘗試從一個按鈕調用一個js函數,它說錯誤: -未終止字符串常量MVC4剃刀視圖引擎

Unterminated string constant

enter image description here

但是它不給任何compile timeruntime錯誤和工作正常。

但在觀點有它清楚地說,關於上述的錯誤:

爲什麼會這樣?

+0

什麼的Visual Studio版本 – haim770 2014-09-04 07:07:02

+0

的Visual Studio 2012 – Pawan 2014-09-04 07:07:33

回答

4

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

好吧,讓我來試試.. :) – Pawan 2014-09-04 07:09:55

+0

錯誤不會消失。它仍然會說相同的錯誤.. :( – Pawan 2014-09-04 07:11:37

+0

也許這是他們在VS 2013中更新的一個更新。 – ps2goat 2014-09-04 07:12:31