我在我的MVC项目中使用DataTables.NET。它有一个IDataTablesRequest
接口,通常在动作中使用如下:
public async Task<ActionResult> GetTableData(IDataTablesRequest request) {
...
}
IDataTablesRequest
接口的一部分包含AditionalParameters
属性:
public IDictionary<string, object> AditionalParameters { get; set; }
我试图仅在AditionalParameters
内传递HTML属性,但MVC不会让我。
我尝试过的是实现我自己的IDataTablesRequest
课程,这样我可以在AditionalParameters
前加[AllowHtml]
,但是没有取得任何成功,因为它包含{ {1}}如果在该类中实现,则无法在MVC层上序列化的属性:
Columns
因为愚蠢的public IEnumerable<IColumn> Columns { get; set; }
接口包含子接口,所以我无法重新实现IDataTablesRequest
。有什么建议?从JavaScript的角度来看,数据在传入时已经被编码,因为它最初已经通过IColumn
进行了HTML编码,但即使在编码之后它也包含像HttpUtility.HtmlEncode(value)
这样的MVC不喜欢的元素。将其传递回&
操作时,我不想在此处进行双重编码,因为这会导致其他问题。
答案 0 :(得分:0)
你能否详细介绍哪些部分与html相关?即[AllowHtml]
的正常用法AllowHtmlAttribute类
来自mircosoft
允许请求在模型绑定期间包含HTML标记 跳过属性的请求验证。 (这是强烈的 建议您的应用程序明确检查所有模型在哪里 您禁用请求验证以防止脚本漏洞利用。)
我无法看到哪些数据表与[AllowHtml]
有关答案 1 :(得分:0)
我通过使用AditionalParameters
和Json.Encode
which are a part of System.Web.Helpers
序列化和反序列化我需要在服务器端使用的Json.Decode
数据找到了解决方法。