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提供程序"的意思)。

不确定这是否会对事情产生影响,但我想为了完成起见,我应该提一下。

ValueProviderCollection不尊重AllowHtml属性

在阅读了一篇关于该主题的优秀博客文章后,我实现了我的解决方案。结果非常简单。

我提供了一个与现有方法类似的方法:

public static string GetStringValue(this IUnvalidatedValueProvider provider, string key, performValidation)
{
    return provider.getValue(key, !performValidation).AttemptedValue;
}

在调用代码中,对于我不想验证的特定属性,我进行了以下调用:

var content = (provider as IUnvalidatedProvider).GetValue(key, false);