Запретить EntityFramework возвращать экранированную кавычку для строки json

1

Я возвращаю строку через сущность framework в файле.cshtml.
Код выглядит так:

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

Когда он появляется в браузере, у него есть кавычки в json, которые были экранированы следующим образом:

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

Но мне нужно, чтобы это были реальные кавычки, а не экранированные значения.

Как предотвратить предотвращение утечки EF из котировок?

Вот мое первое определение кода EF для поля:

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

Я также попытался заменить кавычки (как на С#, так и на JS) после того, как они были возвращены, и что они не работают.

  • 0
    Я также сохраняю карту Geo JSON. Думаю, я не сталкивался с этой проблемой, так как я делаю AJAX POST из Javascript, а не из одного из моих просмотров MVC.
Теги:
entity-framework
asp.net-mvc

2 ответа

3
Лучший ответ

Бритва делает это, а не EF. Попробуйте использовать @Html.Raw():

var mapGeoJson = @Html.Raw(Model.RouteMapJSON);
  • 0
    Я думаю, что вы пропустили вызов JSON.parse из оригинала.
  • 0
    @emodendroket Исходя из моего опыта и вышеизложенного вывода, анализ javascript не обязателен.
1

Это не платформа Entity Framework. Чтобы получить неэкранированный текст в представлении, вы должны использовать MvcHtmlString.

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

Это должно дать желаемые результаты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню