2015-02-09 76 views
-4

我試圖創建一個屬性,以便我可以修飾操作/控制器並運行一些代碼。我的自定義屬性不起作用

這是我的屬性代碼:

public class UpdateLastLogInAttribute : System.Attribute 
{ 
    Linq.UserMinData umd { get; set; }  
    public UpdateLastLogInAttribute() 
    { 
     this.umd =datafuncs.GetMinData(); 
     if (umd != null) 
      datafuncs.SaveLastConnected(umd); 
    }     
} 

...這就是我想要的屬性與

[funcs.UpdateLastLogIn] 
public class HomeController : Controller 
{ 
} 

工作,但是控制器,當我打的控制器,我的代碼從不執行。怎麼了?

+0

「不工作」不是對問題的描述。 – spender 2015-02-09 17:35:06

+0

你向我們展示了一些代碼,但是你沒有告訴我們你想要實現什麼,或者實際發生了什麼。 「這不起作用」不是對問題的有用描述。 – 2015-02-09 17:35:25

+0

我的自定義屬性不執行 – 2598 2015-02-09 17:36:04

回答

2

屬性是愚蠢的。沒有任何魔法讓屬性中的代碼運行。您可以反思自己的代碼並檢測屬性並運行代碼。

幸運的是,MVC已經這樣做了具體的屬性類型,所以......

你可能會考慮,這取決於你想攔截請求的階段延長ActionFilterAttribute和壓倒一切的OnActionExecutingOnActionExecutedOnResultExecutingOnResultExecuted

MVC查找此屬性的子類並在適當的時間執行上述四種方法。

+0

我做了OnResultExecuting,但我看到該屬性運行幾次insted一個,爲什麼? – 2598 2015-02-09 17:54:11

+0

這是一個新問題。提供代碼。確保你解釋發生了什麼問題。看看我對你的問題做出的改變,以使它有用。 – spender 2015-02-09 17:57:58

相關問題