ValueProviderCollection不尊重AllowHtml属性
本文关键字:AllowHtml 属性 ValueProviderCollection | 更新日期: 2023-09-27 18:04:29
我在一个网站上的所见即所得编辑器工作。这个编辑器是nicEdit。
我有一些麻烦与我的mvc模型抛出一个"潜在危险的请求。表单值被检测"异常。
我试图通过在我的Content属性上放置一个AllowHtml属性来解决这个问题:
[AllowHtml]
public string Contents { get; set; }
在这段代码中抛出异常:
public static string GetStringValue(this IValueProvider provider, string key)
{
return provider.getValue(key);
}
在运行时实例化的特定提供程序是内置的ValueProviderCollection,包含一个System.Web.Mvc。FormValueProvider,我在这里的阅读建议应该尊重AllowHtml属性。
那么,我哪里做错了呢?
编辑:所以我的高级已经告诉我,我正在工作的类是IValueProvider的扩展(这显然是什么"这个IValueProvider提供程序"的意思)。
不确定这是否会对事情产生影响,但我想为了完成起见,我应该提一下。
在阅读了一篇关于该主题的优秀博客文章后,我实现了我的解决方案。结果非常简单。
我提供了一个与现有方法类似的方法:
public static string GetStringValue(this IUnvalidatedValueProvider provider, string key, performValidation)
{
return provider.getValue(key, !performValidation).AttemptedValue;
}
在调用代码中,对于我不想验证的特定属性,我进行了以下调用:
var content = (provider as IUnvalidatedProvider).GetValue(key, false);