我在this link中發現了一個解決方案,用於將一些數據從我的模型轉移到javascript對象。問題是我在Visual Studio中有一個錯誤,指出分號無效,但當我嘗試運行我的應用程序時,它完美地工作。剃刀頁面中的Javascript語法錯誤
下面是截圖,顯示錯誤:
但如果我刪除了分號,我現在有這個錯誤:
在反正,一JavaScript語句在行尾應始終有一個分號。
如果當我運行我的應用程序時,這意味着什麼,所有工作正常?
我在this link中發現了一個解決方案,用於將一些數據從我的模型轉移到javascript對象。問題是我在Visual Studio中有一個錯誤,指出分號無效,但當我嘗試運行我的應用程序時,它完美地工作。剃刀頁面中的Javascript語法錯誤
下面是截圖,顯示錯誤:
但如果我刪除了分號,我現在有這個錯誤:
在反正,一JavaScript語句在行尾應始終有一個分號。
如果當我運行我的應用程序時,這意味着什麼,所有工作正常?
您可以嘗試在虛線框包含它:
var serializedData = @{
Html.Raw(NewtonSoft.Json.JsonConvert.SerializeObject(Model));
};
編輯:這個答案只適用於2010年的升級VS在VS 2012分打破了這種解決方法爲好。
@crush:實際上挖入它,我們都是正確的,我們都是錯的。重複鏈接中的一個被刪除的答案解釋了爲什麼的問題(http://stackoverflow.com/questions/12275095/upgrade-from-net-4-to-4-5-breaks-html-raw-call-在JavaScript的)。當我做出這個答案時,我在Studio 2010上工作(自2012年以來,大多數人都是在幾個月前纔出現的),顯然到2012年(以及後來的2013年)的升級改變了JavaScript語法分析器。我會更新這個以反映這種細微差別,但它確實解釋了爲什麼它當時起作用,而不是現在起作用。 –
根據您的修改刪除我的評論。感謝您保持此網站的有效性。 – crush
我剛剛開始使用Razor/MVC4,但你可以這樣嗎?
@{
var serializedData = Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model));
}
<script>
...
var serializedData = @serializedData;
謝謝epascarello,但錯誤似乎被轉移到@serializedData變量的分號。 – Samuel
總結你的剃鬚刀代碼在引號,像這樣:
var myVar = '@serializedData';
如JavaScript鴨類型,你應該在大多數使用情況確定。
如果您將JSON放入這些字符串中,則需要在字符串上使用'JSON.parse(...)'以將其反序列化爲JavaScript對象。這樣做會大大減慢網頁的執行速度。更好的解決方案是使用身份識別功能。也就是說,這是本頁面提供的唯一工作解決方案。 *查看重複的問題以獲得更好的解決方法。* – crush
[razor/javascript and trailing semicolon]的可能的重複(http://stackoverflow.com/questions/12111729/razor-javascript-and-trailing-semicolon) – epascarello