Как получить html в контроллере, опубликованном с помощью ajax - PullRequest
0 голосов
/ 26 июня 2019

Я хочу опубликовать некоторый HTML из моего представления на контроллере, используя AJAX.Однако я не знаю, как получить опубликованный HTML в контроллере.

var form = $('.Container').html();

$.ajax({
  url: "/Public/Support",
  type: 'POST',
  cache: false,
  contentType: "test/plain",
  dataType: "html",
  data: { form: form },
  success: function (data) {
    if (data.Result == false) {
    } else {
    }
  },
});

1 Ответ

0 голосов
/ 28 июня 2019

По умолчанию html, контент запрещен для публикации на сервере по соображениям безопасности ( межсайтовый скриптинг (XSS) атаки и атаки с использованием HTML-инъекций). Необходимо разрешить использование атрибута из данных.аннотация.

** Модель: **

public class SomeModel
{
    [AllowHtml]
    public string HtmlContent { get; set; }
 }

 above will allow HTML content to post, however, if you are saving this content to 
database save it encoded and retrieve as it is and display by decoding it 


var form = $('.Container').html();

 $.ajax({
   url: "/Public/Support",
   type: 'POST',
   cache: false,
   contentType: "test/plain",
   dataType: "html",
   data: { form: htmlEntities(form) },
   success: function (data) {
   if (data.Result == false) {
      } else {
    }
  },
 });


 function htmlEntities(str) {
     return String(str).replace(/&/g, '&amp;').replace(/</g, 
    '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
  }    /// you can reverse this funtion to decode to display

или, возможно, вы также можете использовать различные методы кодирования и декодирования на стороне сервера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...