2014-06-21 4 views
2

Я пытался установить свойство в конструкторе аф контроллер, как это:Использование HttpContext в конструкторе контроллера

public ApplicationUserManager UserManager { get; private set; } 
public AccountController() 
    { 
     UserManager = HttpContext.GetOwinContext().Get<ApplicationUserManager>(""); 
    } 

Но, как описано здесь:

https://stackoverflow.com/a/3432733/1204249

HttpContext не доступен в конструкторе.

Как я могу установить свойство, чтобы я мог получить к нему доступ в каждом из действий контроллера?

ответ

2

Вы можете переместить код в свойство только для чтения на контроллере (или базовый контроллер, если вам это нужно доступно во всей заявке):

public class AccountController : Controller { 
    private ApplicationUserManager userManager; 

    public ApplicationUserManager UserManager { 
     if (userManager == null) { 
      //Only instantiate the object once per request 
      userManager = HttpContext.GetOwinContext().Get<ApplicationUserManager>(""); 
     } 

     return userManager; 
    } 
} 
Смежные вопросы