Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果字符串包含HTML标记,则无法解析AJAX帖子URL(500)_Jquery_Asp.net_Tinymce_Mvchtmlstring - Fatal编程技术网

Jquery 如果字符串包含HTML标记,则无法解析AJAX帖子URL(500)

Jquery 如果字符串包含HTML标记,则无法解析AJAX帖子URL(500),jquery,asp.net,tinymce,mvchtmlstring,Jquery,Asp.net,Tinymce,Mvchtmlstring,我试图获取TinyMCE wysiwyg的内容,并将其发布到控制器函数以插入数据库。此设置将始终显示加载资源失败:服务器响应状态为500(内部服务器错误)在Chrome的错误控制台中引用my/admin/postnewarticle/route作为数据: $.ajax({ url: '/admin/postnewarticle/', type: 'post', dataType: 'json', data: { content: tinyMCE.g

我试图获取TinyMCE wysiwyg的内容,并将其发布到控制器函数以插入数据库。此设置将始终显示加载资源失败:服务器响应状态为500(内部服务器错误)在Chrome的错误控制台中引用my/admin/postnewarticle/route作为数据:

$.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()
作为一个监视表达式,显示我在这里得到了所需的值:无论我在tinyMCE文本区域中写了什么,都被包装在
标记中。如果我将“content”的值替换为一些随机的静态字符串值,其中没有任何HTML标记,那么控制器方法将正确执行

以下是我尝试使用的控制器方法:

[HttpPost]
[Authorize(Roles = "Administrators")]
[ValidateInput(false)]
public JsonResult PostNewArticle(string title, HtmlString content, string articleType)
{
    // do stuff
}
请注意,此处“内容”的数据类型是HtmlString。。。在做了一些最终引导我的研究之后,我改变了这一点。但无论是string还是HtmlString,如果content的值包含HTML标记,则该操作仍然不会执行


感谢您的任何帮助

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

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

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

LOL,编辑器的注释:我的意思是不在我的问题中间说“包在段落标签中”。我打了一个带括号的字母,所以它引起了断线。谢谢!我只需要将控制器方法中“content”的数据类型改回“string”,并且在视图中显示内容时使用“Server.UrlDecode(content)”而不是“content”,但仅此而已。感谢这个明确的解决方案(这可能也会帮助其他人)