在MVC中,如何在现有DLL类中的属性上[允许Html]
本文关键字:属性 允许 Html DLL MVC | 更新日期: 2023-09-27 18:36:17
我在我的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]
,但没有任何成功,因为它包含一个 Columns
属性,如果在该类中实现,则无法在 MVC 层上序列化:
public IEnumerable<IColumn> Columns { get; set; }
因为愚蠢的IDataTablesRequest
接口包含子接口作为其中的一部分,所以我无法重新实现IColumn
。有什么建议吗?从 JavaScript 方面来看,数据在传入时已经进行了编码,因为它最初已经通过 HttpUtility.HtmlEncode(value)
进行了 HTML 编码,但即使在编码后,它也包含像 MVC 不喜欢的元素&
当将其传递回 GetTableData
操作时,我不想在这里进行双重编码,因为这可能会导致其他问题。
您能否提供有关与html相关的部分的更多详细信息。 即 [AllowHtml] 的正常用法
AllowHtmlAttribute 类
来自 米尔科软件
允许请求在模型绑定期间包含 HTML 标记 跳过属性的请求验证。(强烈 建议应用程序显式检查所有模型,其中 禁用请求验证以防止脚本攻击。
我看不出数据表与 [AllowHtml] 有什么关系
我通过使用Json.Encode
和Json.Decode
来序列化和反序列化我需要在服务器端使用的AditionalParameters
数据System.Web.Helpers
找到了解决方法。