2017-07-20 22 views
0

我有一個字符串(地址)從viewmodel傳遞到視圖。我將地址設置爲由javascript/jquery使用的變量。但是,如果我有一個像轉換原始HTML時剃刀視圖拋出錯誤

「阿拉莫廣場公園,施泰納聖&海斯街,舊金山,CA 94117,USA」的字符串

當我設置的變量在我的Razor視圖文件中像這樣

var viewModelFormattedAddress = @ Html.Raw(Model.FormattedAddress);

我得到一個錯誤!

如果我只是通過在引號值作爲一個字符串,它的特殊字符轉換成非HTML字符,像這樣

「阿拉莫廣場公園,施泰納聖&放海斯街,舊金山的變量, CA 94117,USA」

如果我這樣做

VAR viewModelFormattedAddress = 「@ Model.FormattedAddress」;

我不想要這個,因爲那時我必須將其轉換回來。

爲什麼在執行@ Html.Raw()調用時拋出錯誤?

更新 -

這裏是我想要

var viewModelFormattedAddress = @Html.Raw(Json.Encode(Model.FormattedAddress)).ToString(); 

這是錯誤

JavaScript的嚴重錯誤的行297,列41 https://localhost:44368/Home/Events?date=7/19/2017&formattedaddress=Alamo+Square+Park,+Steiner+St+&+Hayes+Street,+San+Francisco,+CA+94117,+USA&latitude=37.7763694&longitude=-122.434819&maptype=establishment \ n \ nSCRIPT1002:語法錯誤

這就是它的顯示動態頁面

var viewModelFormattedAddress = "Alamo Square Park, Steiner St \u0026 Hayes Street, San Francisco, CA 94117, USA"; 
+1

什麼錯誤? (它需要是@ @ Html.Raw(Json.Encode(Model.FormattedAddress));' - 我猜你可能在該地址還有新的行字符?) –

+0

我要發佈更多詳細信息 – user1186050

+1

它已經是'string'了 - 你不需要'.ToString()':) –

回答

2

我想你忘了引號...試試這個:

var viewModelFormattedAddress = "@Html.Raw(Model.FormattedAddress)"; 

而不是

var viewModelFormattedAddress = @Html.Raw(Model.FormattedAddress);