2015-06-18 3 views
0

Я использую ASP.NET MVC, когда я попытался ввести <HTML> в текстовое поле и отправить форму, которую он мне дал Ошибка синтаксического анализа и недопустимый символ.Ajax submit и получить недопустимую ошибку символа

Но когда я попытался ввести <222> или HTML>, форма отправлена ​​без проблем.

Это странно, и я пытался его кодировать перед отправкой, но я все равно получаю тот же результат, у кого есть идея?

Ниже приведен код:

$('#form1').bind('submit', function (e) {     
    e.preventDefault(); 
    $(this).ajaxSubmit({ 
     iframe: true, 
     dataType: 'json', 
     error: function (e) { 

     }, 
     success: function (data) { 

     } 

Вот форма представить

@using (Html.BeginForm("TestSet", "test", FormMethod.Post, new { enctype = "multipart/form-data", id = "form1" })) 

Вот контроллер

[AcceptVerbs(HttpVerbs.Post)] 
    public FileUploadJsonResult test(testViewModel testvm) 
    { 
    } 

Я протестирован на

$('#form1').bind('submit', function (e) {     
    e.preventDefault(); 
    var data = $("#frmTaskSet").serializeArray(); 
    $(this).ajaxSubmit({ 
     iframe: true, 
     dataType: 'json', 
     //data: JSON.stringify(data), 
     or 
     //data: encodeURIComponent(data), 
     error: function (e) { 

     }, 
     success: function (data) { 

     } 

Update: Я имел усадку проблемную зону, я пытаюсь ключ в <ABC> или <ABC в текстовое поле и передать это значение в контроллер затем он ударил ошибку, но странно то, если я прохожу с помощью ABC> или < 123> это успешно без проблем.

  var task1 = $("#text1").val().toString(); 
      var encode1 = escapeHTML(task1); 
      var encode2 = encodeURIComponent(task1); 
      var encode3 = $("<div>").text(task1).html(); 


      alert(encode1); //&lt;ABC&gt; 
      alert(encode2); //%3CABC%3E 
      alert(encode3); //&lt;ABC&gt; 

       $(this).ajaxSubmit({ 
        iframe: true, 
        dataType: 'json', 
        data: { Name: encode4 }, 
        //contentType: "application/json", 
        error: function (e,errordata, errorObject) { 

        }, 

ОШИБКА Я получаю ошибку синтаксического анализа, и SyntaxError: Неверный символ, это произошло до того, как разместить на стороне сервера.

+1

'ajaxSubmit' должен быть m плагин (плагин jQuery form?). В любом случае, вы говорите, что пытались закодировать его, но * как *? – Mackan

+0

Где именно происходит ошибка? Перед публикацией или на стороне сервера? Вы отметили это 'model-view-controller', но нет упоминания о шаблоне - вы имели в виду [asp.net-mvc] –

+0

Привет, свобода слова, спасибо за ответ, ошибка возникает перед отправкой на сервер, да, я Я использую asp.net-mvc ... –

ответ

0

ASP.Net MVC не поддерживает пользователя для ввода тегов html. Для этого вы можете использовать атрибут ValidateInput и атрибут AllowHtml.

Вы можете использовать это на уровне контроллера или уровне действия

Пример

[ValidateInput(false)] 
public class HomeController : Controller 
{ 
public ActionResult Index() 
{ 
return View(); 
}   
// Do your code 
} 

Также вы можете использовать атрибут AllowHtml для конкретного свойства

public class Demo 
{ 
[Required] 
[Display(Name = "Title")] 
public string Title{ get; set; } 

[AllowHtml] 
[Required] 
[Display(Name = "Description")] 
public string Description{ get; set; } 
} 

Для получения дополнительной информации посетите this article

+0

Большое спасибо, сейчас он работает! –