Проблема сериализации HTML в WCF Web API для XML и Json - PullRequest
0 голосов
/ 01 марта 2012

Я использую службу WCF Web API для публикации некоторых данных через Json и Xml.Но у меня проблема с html-строкой для ее сериализации.

для сериализации Xml Я использую XmlMediaTypeFormatter () и для сериализации Json У меня есть класс CustomJSONMediaTypeFormatter, который использует библиотеку Newtonsoft.Json.

Я получаю данные с помощью Entity Framework из базы данных и, как код, который я публикую нижеэто с помощью веб-API WCF.

    [WebGet(UriTemplate = "getLogin")]
    public IQueryable<LoginTableDTO> Login()
    {
         var loginList = ltr.GetList();
        List<LoginTableDTO> dtoList = new List<LoginTableDTO>();
        foreach (LoginTable item in loginList)
        {
            dtoList.Add(LoginTableAssembler.ToDTO(item));
        }
    return dtoList.AsQueryable();
}

, но с html-строками, такими как

<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>

, которые поступают из базы данных, после сериализации возвращает

&lt;p&gt;&lt;input style="float: right" type="submit" name="name" value="Save Changes" /&gt;&lt;/p&gt;

для xmlи возвращает

\u003cp\u003e\u003cinput style=\"float: right\" type=\"submit\" name=\"name\" value=\"Save Changes\" /\u003e\u003c/p\u003e

для Json.

Как вы видите, они не читаются человеком.

У меня также есть некоторые проблемы с объектом datetime.но я нашел решение для преобразования строки, прежде чем делать это на самом деле, я не доволен этим. (это еще одна проблема).

Что я должен сделать для сериализации строк HTML, таких как обычные строки (которых нет ")html теги ") в XML и JSON?

Заранее спасибо ...

1 Ответ

1 голос
/ 01 марта 2012

Я не на 100% уверен, что вы хотите, но если вы хотите:

&lt;p&gt;&lt;input style="float: right" type="submit" name="name" value="Save Changes" /&gt;&lt;/p&gt;

стать:

<p><input style="float: right" type="submit" name="name" value="Save Changes" /></p>

использовать http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx. Проблема в том, чтовам нужно будет экранировать HTML, чтобы сохранить его в XML .... это означает, что приведенная ниже строка выглядит правильно.

\u003cp\u003e\u003cinput style=\"float: right\" type=\"submit\" name=\"name\" value=\"Save Changes\" /\u003e\u003c/p\u003e
...