【问题标题】:Send HTML with FormData and Ajax [closed]使用 FormData 和 Ajax 发送 HTML [关闭]
【发布时间】:2017-05-10 00:13:37
【问题描述】:

我想发送textarea (TinyMCE) 的 HTML 但输入参数为空。

我缺少什么才能使其正常工作?有什么线索吗?

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

【问题讨论】:

  • 使用 tinyMce API 获取内容或至少在尝试获取元素值之前更新元素
  • “englishContent 为空”是什么意思?调用$.ajax() 时,元素#editorEnglishContentCreate 的值是否不是空字符串?
  • @charlietfl 看来你是对的,请告诉我该怎么做
  • 获取内容或更新元素的方法在 api 文档中。我不知道他们在我的头顶上,并且必须自己查找它们,没有理由你不能这样做。该方法确实有效......将类似于var content = editorInstance.getContent()getData()或类似

标签: javascript ajax asp.net-mvc post asp.net-mvc-5


【解决方案1】:

我找到了解决办法

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)
{

【讨论】:

    猜你喜欢
    • 2021-01-27
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多