【问题标题】:Razor view throwing error when converting raw HTML转换原始 HTML 时 Razor 视图抛出错误
【发布时间】:2017-07-20 01:15:14
【问题描述】:

我有一个字符串,一个字符(地址)从视图模型传递到视图。我将地址设置为 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 中第 297 行第 41 列出现 JavaScript 严重错误\n\nSCRIPT1002:语法错误

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

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

【问题讨论】:

  • 什么错误? (它必须是@Html.Raw(Json.Encode(Model.FormattedAddress)); - 我猜你在那个地址中可能还有换行符?)
  • 我将发布更多详细信息
  • 它已经是string - 你不需要.ToString() :)

标签: html asp.net-mvc razor


【解决方案1】:

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

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

而不是

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    相关资源
    最近更新 更多