jquery - 如果字符串包含 HTML 标签,则无法解析 AJAX Post URL (500)

标签 jquery asp.net tinymce mvchtmlstring

我正在尝试获取 TinyMCE wysiwyg 的内容并将其发布到 Controller 功能以进行数据库插入。此设置将始终显示无法加载资源:服务器响应状态为 500(内部服务器错误),并引用我的/admin/postnewarticle/路由作为 Chrome 错误控制台中的数据:

$.ajax({
    url: '/admin/postnewarticle/',
    type: 'post',
    dataType: 'json',
    data: {
        content: tinyMCE.get('article-content').getContent(),
        title: $('#article-title').val(),
        articleType: $('#article-types option:selected').val()
    },
    success: function (result) {
        // success stuff
    }
});

当我在 Chrome 中调试时,放置 tinyMCE.get('article-content').getContent()正如 Watch Expression 所示,我在这里得到了所需的值:我在 TinyMCE 文本区域中编写的任何内容,都包含在 <p> 中。标签。如果我将“content”的值替换为一些随机静态字符串值,其中不包含任何 HTML 标记,则 Controller 方法将正确执行。

这是我尝试使用的 Controller 方法:

[HttpPost]
[Authorize(Roles = "Administrators")]
[ValidateInput(false)]
public JsonResult PostNewArticle(string title, HtmlString content, string articleType)
{
    // do stuff
}

请注意,这里“内容”的数据类型是 HtmlString...在做了一些研究后,它从字符串更改为最终导致我 here 。但无论是字符串还是 HtmlString,如果内容值包含 HTML 标记,操作仍然不会执行。

感谢任何和所有帮助!

最佳答案

在发送内容之前对其进行网址编码可能会有所帮助

content: encodeURIComponent( tinyMCE.get('article-content').getContent() ),

并将其返回到服务器端的真实字符串。

关于jquery - 如果字符串包含 HTML 标签,则无法解析 AJAX Post URL (500),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9835116/

相关文章:

ASP.NET 页面事件调用两次

asp.net - 当 apphost 配置中存在 system.web 配置时,IIS 8 中的 HTTP 错误 500.19

asp.net - 共享2个应用程序: Session State Deserialization Error for ASP.Net MVC

jquery - WordPress - TinyMCE 在小部件保存时消失

javascript - HTML 中框架集的最佳 JS 替代品是什么

javascript - jQuery .append() 不适用于 .js 文件

Jquery如何从输入名称属性中获取索引

javascript - 如何使 qtip2 工具提示动态化

javascript - TinyMCE 生成随机 <g> 标签?

jquery - 如何设置 TinyMCE 文本区域元素的焦点?