2017-07-20 77 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);