【问题标题】:Prevent EntityFramework from returning escaped quote for json string防止 EntityFramework 返回 json 字符串的转义引号
【发布时间】:2014-08-26 15:34:00
【问题描述】:

我通过 .cshtml 文件中的实体框架返回一个字符串。
代码如下所示:

var mapGeoJson = JSON.parse(@Model.RouteMapJSON);

当它显示在浏览器中时,json 中的引号会像这样转义:

JSON.parse({"type": "FeatureCollection", . . .

但我需要它是真正的引号,而不是转义值。

如何防止 EF 转义引号?

这是我对该字段的 EF 代码第一个定义:

 [DataType(DataType.MultilineText)]
 public string RouteMapJSON { get; set; }

我还尝试在返回引号后替换引号(在 C# 和 JS 中),但这也不起作用。

【问题讨论】:

  • 我也在保存地图 Geo JSON。我猜我没有遇到这个问题,因为我是从 Javascript 而不是我的一个 MVC 视图中进行 AJAX POST。

标签: c# asp.net-mvc json entity-framework


【解决方案1】:

Razor 正在这样做,而不是 EF。尝试使用@Html.Raw()

var mapGeoJson = @Html.Raw(Model.RouteMapJSON);

【讨论】:

  • 我认为您缺少原始的 JSON.parse 调用。
  • @emodendroket 根据我这样做的经验和他上面的输出,应该不需要 javascript 解析。
【解决方案2】:

这不是 Entity Framework 做的。要在视图中获取未转义的文本,您必须使用 MvcHtmlString。

var mapGeoJson = JSON.parse(@(new MvcHtmlString(Model.RouteMapJSON));

这应该会给出你想要的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2011-03-18
    相关资源
    最近更新 更多