2011-10-13 15 views
2

抓住當前用戶的OU並返回一個具有關於OU的幾個屬性的自定義模型(Division)。然後通過ViewBag傳遞它。我的控制器看起來是這樣的:有人可以幫我幹DRY-ify這些ASP.NET MVC控制器ActionResults

public ActionResult NewAccountRequest() 
{ 
     var currentUser = HttpContext.User; 
     var userDivision = ADTools.GetDivisionFromUser(currentUser.Identity.Name); 
     ViewBag.UserDivision = userDivision; 
     .... 
} 

[HttpPost] 
public ActionResult LookupUNI(string uni) 
{ 
     var currentUser = HttpContext.User; 
     var userDivision = ADTools.GetDivisionFromUser(currentUser.Identity.Name); 
     ViewBag.UserDivision = userDivision; 
     .... 
} 

回答

2

如果這是通用於所有你的行動,你可以把它添加到OnActionExecuted的控制器。

public void override OnActionExecuted(ActionExecutedContext context) 
{ 
    if (context.Result is ViewResult) 
    { 
     var currentUser = HttpContext.User; 
     var userDivision = ADTools.GetDivisionFromUser(currentUser.Identity.Name); 
     ViewBag.UserDivision = userDivision; 
    } 
} 
+0

這對我需要的東西非常適用。謝謝。 –

相關問題