MVC 3:ActionFilterAttribute和OnActionExecuting不会触发

时间:2012-03-03 20:07:54

标签: jquery asp.net-mvc asp.net-mvc-3 validation events

我正在尝试向我的模型添加WarningCheck属性,我会覆盖OnActionExecuting来控制验证。问题是代码永远不会被调用。

WarningCheckAttribute

[AttributeUsage(AttributeTargets.All)] // I have tried other targets too without success
public class WarningCheckAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

      /* DO SOME STUFF */
    }
}

模型

  public class Ticket   
   {
    ...
    [StringLength(50)]
    [Display(Name = "Cliente")]
    [Required(ErrorMessage = "Il Cliente è obbligatorio.")]
    [WarningCheck]
    [MaxLength(50, ErrorMessage = "Il nome del Cliente può essere al massimo di 20 cifre."), MinLength(3, ErrorMessage = "Il nome del Cliente è troppo corto. Inserire almeno 3 caratteri.")]
    public string Cliente { get; set; }
    ...

1 个答案:

答案 0 :(得分:3)

顾名思义,操作 FilterAttribute应该应用于操作,而不应用于属性。

[WarningCheck]
public ActionResult Create(Ticket ticket)
{

}