質問

C#とRazorを使用したASP.NET MVC3 Webアプリケーションがあります。

ビューのフォームを通して、私は取得します Context.User.Identity.Name aのアクションメソッドに提出 コントローラーa.

この可変アプリケーション全体(複数のコントローラー間)を利用できるようにしたいと思います。今、私はそれをグローバル変数に割り当てることができます _Username 以内 コントローラーa, 、もちろん、入手できません コントローラーb.

それをすることは可能ですか?

ありがとう

フランチェスコ

役に立ちましたか?

解決

任意のコントローラーでこれにアクセスしている場合は、コントローラーメソッドでhttpcontext.user.identityを使用する必要があります。セッションに保存する必要はありません。

他のヒント

すべてのコントローラーが継承し、そこから変数を設定する親コントローラーを作成します。そこから多くのことをすることができます - ビューモデルでそれを描き、ユーザーの詳細をViewBagなどに入れます。

public class UserController : Controller
{
    // create your own User class with as many properties as you need
    protected User user { get; set; }

    public UserController()
    {
        user = // get user from db, wherever
    }
}

次に、UserControllerから継承するだけです

public class ControllerA : UserController
{
    public ActionResult DoSomething()
    {
        user.Property = 123;
    }
}

キャッシュを調べ、場合によってはユーザーセッションを使用してこの情報を保存する必要があります。

チェックアウト これ 質問。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top