转换原始HTML时Razor视图抛出错误

时间:2017-07-20 01:15:15

标签: html asp.net-mvc razor

我有一个字符串,从viewmodel传递给视图的字符(地址)。我将地址设置为javascript / jquery使用的变量。但如果我有一个像

这样的字符串
  

“Alamo Square Park,Steiner St& Hayes Street,San Francisco,CA 94117,USA”

当我在我的剃刀视图文件中设置变量时,就像这样

  

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

我收到错误!

如果我只是将引号中的值作为字符串传递给变量,它会将特殊字符转换为非HTML字符,如此

  

“Alamo Square Park,Steiner St& amp Hayes Street,San Francisco,CA 94117,USA”

如果我这样做

  

var viewModelFormattedAddress =“@ Model.FormattedAddress”;

我不想要这个,因为我必须将其转换回来。

为什么在进行@Html.Raw()调用时会抛出错误?

更新 -

这是我正在尝试的

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

这是错误

  

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 \ n \ nSCRIPT1002中第41行第297行的JavaScript严重错误:语法错误

这就是它在动态页面中显示的内容

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

1 个答案:

答案 0 :(得分:2)

我想你忘记了引号......试试这个:

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

而不是

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