2016-12-24 2 views
-1

Я хочу отправить HTML-код textarea (TinyMCE), но входной параметр пуст.Отправить HTML с FormData и Ajax

Что мне не хватает, чтобы заставить его работать? Любая подсказка?

$('#btnCreateContent').click(function() { 

       // Checking whether FormData is available in browser 
       if (window.FormData !== undefined) { 

        var fileUpload = $("#FileUpload1").get(0); 
        var files = fileUpload.files; 

        // Create FormData object 
        var fileData = new FormData(); 

        // Looping over all files and add it to FormData object 
        for (var i = 0; i < files.length; i++) { 
         fileData.append(files[i].name, files[i]); 
        } 

        // Adding one more key to FormData object 
        fileData.append('englishTitle', $("#inputEnglishTitle").val()); 
        fileData.append('englishContent', $("#editorEnglishContentCreate").val()); 

        fileData.append('spanishTitle', $("#inputSpanishTitle").val()); 
        fileData.append('spanishContent', $("#editorSpanishContentCreate").val()); 


        $.ajax({ 
         url: '@Url.Action("CreateContent", "Content")', 
         type: "POST", 
         contentType: false, // Not to set any content header 
         processData: false, // Not to process data 
         data: fileData, 
         success: function (data) { 

         }, 
         error: function (err) { 
          alert(err.statusText); 
         } 
        }); 
       } else { 
        alert("FormData is not supported."); 
       } 
      }); 
      // 

C#

[HttpPost] 
public JsonResult CreateContent(string englishTitle, string englishContent, string spanishTitle, string spanishContent) 
{ 

// englishContent is empty :(
+1

Используйте TinyMCE API для получения содержимого или по крайней мере, обновить элемент, прежде чем вы попытаетесь получить его значение – charlietfl

+0

Что вы подразумеваете под «englishContent is empty»? У элемента '# editorEnglishContentCreate' есть значение, которое не является пустой строкой при вызове' $ .ajax() '? – guest271314

+0

@charlietfl Кажется, вы правы, дайте мне знать, как это сделать. –

ответ

0

Я нашел решение

var englishContent = tinyMCE.get('editorEnglishContentCreate').getContent({ format: 'raw' }); 
console.log(englishContent); 
fileData.append('englishContent', englishContent); 

Также необходим C# код, который необходимо отрегулировать, как

[ValidateInput(false)] 
[HttpPost] 
public JsonResult CreateContent(string englishTitle, string englishContent, string spanishTitle, string spanishContent) 
{ 
Смежные вопросы