2016-12-24 5 views
-1

Ich möchte HTML von textarea (TinyMCE) senden, aber der Eingabeparameter ist leer.Senden Sie HTML mit FormData und Ajax

Was fehlt mir, damit es funktioniert? Irgendeine Ahnung?

$('#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

Verwenden Sie den TinyMCE API, um den Inhalt zu erhalten oder zumindest aktualisieren das Element, bevor Sie versuchen, seinen Wert zu erhalten – charlietfl

+0

Was meinst du mit "englishContent ist leer"? Hat das Element '# editorEnglishContentCreate' einen Wert, der keine leere Zeichenkette ist, wenn' $ .ajax() 'aufgerufen wird? – guest271314

+0

@charlietfl Es scheint, Sie haben Recht, lassen Sie mich wissen, wie es geht bitte –

Antwort

0

fand ich Lösung

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

auch C# -Code eingestellt werden muss wie

[ValidateInput(false)] 
[HttpPost] 
public JsonResult CreateContent(string englishTitle, string englishContent, string spanishTitle, string spanishContent) 
{ 
Verwandte Themen