我在我们的项目中使用ckeditor。在ajax帖子中传递该值,如
//$form is -> $('form') jquery object
$("#ajaxsubmitbutton").on('click', function () {
CKupdate();
$.ajax({
type: ($form.attr('method').toLowerCase() == 'post' ? 'POST' : 'GET'),
url: ($form.attr('action') == 'undefined' ? window.location : $form.attr('action')),
data: $form.serialize(),
success: function (data) {
// Use local eval, since it will work in this context
callbackFunction(data);
},
error: function () {
var data = "ajaxerror";
callbackFunction(data);
}
});
});
Ckeditor更新代码:
function CKupdate(){
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
}
$ form.serialize具有以下值:
"Id=0&Title=dfg&ShortText=rer&CultureCode=en-US&StartDate=3%2F12%2F2014&EndDate=3%2F26%2F2014&Text=%3Cp%3Etest3%3C%2Fp%3E%0D%0A"
控制器代码:
public JsonResult Save(int id, string title, string shortText, string text, DateTime? startDate, DateTime? endDate, string cultureCode)
{
//process some operation
}
它会抛出一些ajax错误,如"未找到500内部服务器" 。我不知道这个问题的真正原因是什么
可能是序列化表单的问题。对此有任何帮助。
答案 0 :(得分:1)
我怀疑标签是这里的问题 -
假设Asp.net MVC在这里你有两个选择 -
使用[AllowHtml]方法装饰您的模型属性(不确定将属性转换为模型会有多大的痛苦)
在控制器方法上放置[ValidateInput(false)]标记 您可能需要在配置中将以下标记添加到system.web
<httpRuntime requestValidationMode="2.0"/>
如果您的提交不是帖子,您可能也会遇到问题,在这种情况下,您需要为您的返回值添加allowget。
在没有完整错误的情况下,不确定这是否是您的问题,但这是我开始的地方。您可能需要检查fiddler或firebug中的响应,看看是否可以获得有关该异常的更多信息。
希望有所帮助。