自分自身のバックエンドデータベースを使用するようにAccountControllerクラスを調整しようとしています。これを完全に行うために、チェックする_Layout.cshtmlに文字列を送る必要があります。これはどのように可能ですか?ASP.Net MVC 3 HTTP-POSTメソッドから_Layout.cshtmlへの文字列の送信
私はViewDataを試しましたが、これはコントローラが添付されたビューに対応する必要があります。 View/Account/LogOn.cshtmlへのAccountControllerが動作します。
私は_Layout.cshtmlでアクセスしようとすると、null参照を取得しているのと同じ方法でViewBagが動作すると思います。
現時点では、私のコードは問題を解決しようとしたために少し傷ついていますが、ここには私のものがあります。うまくいけば、それはより良い説明に役立ちます。
AccountController/[HTTP-POST] [ログオン
...
if (user.GetRole(model.UserName).Equals("Admin"))
{
ViewBag.Role = "Admin";
}
...
_Layout.cshtml
@if (Request.IsAuthenticated && ViewBag.Role.Equals("Admin"))
{
...
}
私はもはや(これはコメントに)これはViewBagかのViewDataで行うことができると思いません。どんな解決策も歓迎されるでしょう。あなたがViewBag.Role
のエラーが存在しないでしょうAnkouは
ご質問はありますか? –
上記のコードは機能しません。基本的にViewBag.Roleを参照できないという例外がスローされます。 あるコントローラからビューに文字列を送信する方法を知りたいのですが、直接リンクされていません。 – Ankou
null参照で実行時バインディングを参照できない、または実行できません。ユーザが管理者でない場合に 'ViewBag.Role'を設定していない場合、それは存在しません。 –