给定自定义 ActionFilterAttribute ,是否有办法在重写OnActionExecuting方法中使用 HttpActionContext 访问操作模型上的属性?
如果属性不是特定类型,我希望抛出异常。
例如:
存在名为[CustomRequired]
的自定义属性。如果模型上有[Required]
的任何用法,则抛出异常。该模型应该使用[CustomRequired]
,而不是[Required]
public class ModelValidationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
ValidateModelAttributes(actionContext);
}
private static void ValidateModelAttributes(HttpActionContext actionContext)
{
var attrs = actionContext.ActionDescriptor.GetParameters();
foreach (var attr in attrs)
{
// if attr is not type then throw exception
}
}
}