0

我正在使用CLEditor为我的应用程序用户提供 html 编辑器,CLEditor 使用文本区域来维护生成的 html,我正在使用 jquery ajax 来保存 html:

$(".btnSave").click(function () {
    var description = $(this).find("textarea[name='Description']").val();
    $.ajax({
            url: "/Product/SaveDescription",
            data: { description: description },
            success: function (result) {
                alert("Saved successfully.");
            },
            error: function (xhr, state, msg) {
                alert(msg);
            }
    });
});

但是当我的变量(描述)包含 html 标签时,该操作不会触发,并且出现错误(内部服务器错误)。

这是我的操作方法:

public void SaveDescription(string description)
{
     //save the description
}   

如您所见,我没有使用需要 AllowHtml 属性来允许 html 的 MVC 模型绑定器,那么问题是什么?

谢谢你的帮助。

4

1 回答 1

1

我的第一个猜测是您不允许将 HTML 编码的内容发布到操作中;因此还有一个问题:您在发布时遇到哪个服务器错误?

您可以关闭 ValidateRequest (针对页面或站点),但我怀疑您是否希望整个站点都这样做;您还可以尝试在发布之前&lt;&gt;之前替换描述中的 < 和 >,并在 SaveDescription 标记中撤消该替换(这并不是真正需要的解决方案)。

还要看看这些答案:Allow User to input HTML in ASP.NET MVC - ValidateInput or AllowHtml

于 2013-07-23T07:36:12.507 回答