3

次のようなコントローラーのコンストラクターでプロパティを設定しようとしていました。

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

しかし、ここで説明したように:

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

HttpContext はコンストラクターでは使用できません。

では、コントローラーのすべてのアクションでアクセスできるように、プロパティを設定するにはどうすればよいでしょうか?

4

1 に答える 1

5

コードをコントローラー (または、アプリケーション全体で使用できるようにする必要がある場合はベース コントローラー) の読み取り専用プロパティに移動できます。

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;
    }
}
于 2014-06-21T15:23:42.710 に答える