Ajax-вызов показывает простой HTML

0

У меня есть CKEditor и я сохраняю это как Html в моей базе данных. Тогда я собираюсь получить этот сохраненный поток html и показать его внутри div. Но он показывает коды html.

Мой веб-метод возвращается ниже строки

<p> <strong>Test Heading </strong></p> <p> <img alt="" src="http://s7.postimg.org/511xwse93/mazda_familia_photo_large.jpg" style="width: 150px; height: 112px;" /></p> <p> test description goes here</p> 

Div

<div id="usrnewsdesc"></div>

Мой звонок Ajax

     function LoadNewsToUsers() {
       debugger;

       var newurl = '<%= ResolveUrl("/WebMethods.aspx/GetIndividualUserNews") %>';

        $.ajax({
            url: newurl,
            type: "POST",
            data: JSON.stringify({ ToUser: "<%=GetUserID()%>" }),
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (Result) {
                $.each(Result.d, function (key, value) {

                    var html ="<body>"+value.News+"</body>";
                    $("#usrnewsdesc").append(html);

                });

            },


            error: function (e, x) {
                alert(x.ResponseText);
            }
        });
    } 

Мой div выглядит так Изображение 174551

Мой WebMethod

 [WebMethod, ScriptMethod]
public static List<UserNews> GetIndividualUserNews(Guid ToUser)
{
    List<UserNews> UserNewsDetails = new List<UserNews>();
    try
    {
        SqlCommand comGetAllFiles = new SqlCommand("SP_GetNewsToUser", conDB);
        comGetAllFiles.CommandType = CommandType.StoredProcedure;
        if (conDB.State == ConnectionState.Closed)
            conDB.Open();
        comGetAllFiles.Parameters.Add("@ToUser", SqlDbType.UniqueIdentifier);
        comGetAllFiles.Parameters["@ToUser"].Value = ToUser;

        SqlDataReader rdr = comGetAllFiles.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(rdr);
        foreach (DataRow r in dt.Rows)
        {
            UserNewsDetails.Add(new UserNews
            {
                Id = (int)r["Id"],
                News = r["News"].ToString(),
                DateTime =(DateTime) r["DateTime"],
                ToUser = (Guid)r["ToUser"]

            });
        }

    }
    catch (Exception ee)
    {
    }
    finally
    {
        conDB.Close();
    }
    return UserNewsDetails;
}

Console.log ниже

  &lt;p&gt;
    &lt;strong&gt;Test Heading &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
    &lt;img alt=&quot;&quot; src=&quot;http://s7.postimg.org/511xwse93/mazda_familia_photo_large.jpg&quot; style=&quot;width: 150px; height: 112px;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;
    test description goes here&lt;/p&gt;
  • 0
    в чем проблема снова?
  • 0
    Как именно выглядит строка ответа?
Показать ещё 13 комментариев
Теги:
c#-4.0

2 ответа

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

Вам нужно расшифровать содержимое html, прежде чем вы сможете использовать его как html.

success: function (Result) {
    $.each(Result.d, function (key, value) {

        var html = $("<div/>")        // temp container
                    .html(value.News) // "render" encoded content to text
                    .text();          // retrieve text (actual html string now)

        // body tags are a bad idea here but whatever.
        html = "<body>" + html + "</body>"; 

        $("#usrnewsdesc").append(html);

    });

},

С учетом этого сообщения для инструкции декодирования: как декодировать объекты HTML с помощью jQuery?

0

Вы видите правильный результат. Нет ничего плохого. Это HTML Encoded, вы должны его декодировать. Вы можете использовать сериализатор NewtonSoft json для декодирования. Преобразуйте его, а затем верните его со стороны сервера. Лучше, если вы можете заменить на стороне javascript перед тем, как применить его с append, потому что, если сервер иногда будет возвращаться, ваш js-клиент будет сломан. Кроме этого все коды в порядке

Попробуйте заменить кавычки на js -

var s = value.News.replace('&lt;','<').replace('&gt;','>').replace('&squote','\'').replace('&quote','"');
$("#usrnewsdesc").html(s);

может быть, это поможет или использует NewtonSoft JSON serializer-

  • 0
    Я использовал это, но не работал
  • 0
    Можете ли вы показать код действия на стороне сервера, который возвращает результат?
Показать ещё 6 комментариев

Ещё вопросы

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