ValueProviderCollection 不尊重 AllowHtml 属性
ValueProviderCollection not Respecting AllowHtml attribute
我正在网站上使用所见即所得的编辑器。有问题的编辑器是 nicEdit。
我的 mvc 模型抛出 "A potentially dangerous Request.Form value was detected" 异常时遇到一些问题。
我试图通过在我的内容上放置一个 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,我的 reading here 建议应该遵守 AllowHtml 属性。
那么,我做错了什么?
编辑:所以我的前辈告诉我我正在工作的 class 是 IValueProvider 的扩展(这显然是 "this IValueProvider provider" 的意思)。
不确定这是否会对事情产生影响,但我想为了完成起见我会提到它。
阅读 excellent blog post on the topic 后,我实施了我的解决方案。它最终变得相当简单。
我提供了一个与现有方法类似的方法:
public static string GetStringValue(this IUnvalidatedValueProvider provider, string key, performValidation)
{
return provider.getValue(key, !performValidation).AttemptedValue;
}
在调用代码中,对于我不想验证的特定 属性,我进行了以下调用:
var content = (provider as IUnvalidatedProvider).GetValue(key, false);
我正在网站上使用所见即所得的编辑器。有问题的编辑器是 nicEdit。
我的 mvc 模型抛出 "A potentially dangerous Request.Form value was detected" 异常时遇到一些问题。
我试图通过在我的内容上放置一个 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,我的 reading here 建议应该遵守 AllowHtml 属性。
那么,我做错了什么?
编辑:所以我的前辈告诉我我正在工作的 class 是 IValueProvider 的扩展(这显然是 "this IValueProvider provider" 的意思)。
不确定这是否会对事情产生影响,但我想为了完成起见我会提到它。
阅读 excellent blog post on the topic 后,我实施了我的解决方案。它最终变得相当简单。
我提供了一个与现有方法类似的方法:
public static string GetStringValue(this IUnvalidatedValueProvider provider, string key, performValidation)
{
return provider.getValue(key, !performValidation).AttemptedValue;
}
在调用代码中,对于我不想验证的特定 属性,我进行了以下调用:
var content = (provider as IUnvalidatedProvider).GetValue(key, false);