Jquery 如果字符串包含HTML标记,则无法解析AJAX帖子URL(500)
我试图获取TinyMCE wysiwyg的内容,并将其发布到控制器函数以插入数据库。此设置将始终显示加载资源失败:服务器响应状态为500(内部服务器错误)在Chrome的错误控制台中引用my/admin/postnewarticle/route作为数据: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
$.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”,但仅此而已。感谢这个明确的解决方案(这可能也会帮助其他人)