我在MVC 4中使用带有telerik radeditor的userControl。 我想提交radeditor的内容作为action方法,但是如果我使用editor.get_html(),代码就不会执行。
对action方法的javascript调用如下:
function Save() {
var editor = $find("<%=radEdit.ClientID%>");
var editorHtmlContent = editor.get_html();
var entityId = document.getElementById('hdEntityId').value;
var url = '<%=Url.Action("SaveNote", "staticController")%>';
$.post(url, { EntityId: entityId, Desc: editorHtmlContent }, function (result) { });
}
任何线索?
答案 0 :(得分:1)
发布HTML标记被视为安全威胁(HTML注入和跨站点脚本(XSS)),因此默认情况下会被阻止。你有三种方法:
如果您有强类型的模型类并希望获得实际的HTML,则可以使用AllowHtmlAttribute
:
public class XMLModel
{
public int EntityId { get; set; }
[AllowHtml]
public string Desc { get; set; }
}
最后一个选项是禁用整个操作的输入验证,可以使用ValidateInputAttribute
完成:
[ValidateInput(false)]
[HttpPost]
public ActionResult SaveNote(...)
{
...
}
您应该选择最适合您的选项。