3

MVC3を使用しています。ログインに成功した後にマスターページにユーザのフルネーム、つまりウェルカムジャックを表示する必要があります。 フルネームは、 'UserProfile'と呼ばれる別のテーブルにあります。 伝統的なasp.net Webフォームでは、私はそれを簡単に行うことができました。しかし、私はMVCでそれを行う方法を知りません..! 私は部分的なビュー名 'LogOnUserControl.ascx'を持っています。この部分的なビューでは、私はログインユーザ名を示す次のコードを持っています。ユーザー名の代わりにフルネームを表示

Welcome <strong><%: Page.User.Identity.Name %></strong>! 

これを右クリックして[コントローラに移動]をクリックすると、どこにも移動しません。 誰でも、元のユーザー名を取得する方法について私を導いてくれますか?

答えて

2

この場合、子のアクションを使用できます。あなたがすでに認証を設定していると仮定すると、子プロセスのアクションでUserProfileテーブルを検索し、ユーザデータを表すビューモデルで部分的なビューをレンダリングすることができます。

だからあなたのマスターページにあなたが持っているでしょう:

<%= Html.RenderAction("UserLogonInfo", "Account")%> 

次にあなたがユーザーデータを取得し、それをレンダリングします子アクションのアカウントコントローラー持つことができます。

[ChildActionOnly] 
    public PartialViewResult UserLogonInfo() 
    { 
     IPrincipal principal = HttpContext.User; 
     LogonInfoViewModel model = UserDataRepository.GetUserLogonInfo(principal); 
     return PartialView(model); 
    } 
+0

こんにちは。返信いただきありがとうございます。私は混乱しています。 UserDataRepository.GetUserLogonInfo(プリンシパル)がどこから来たのかをplzで説明できますか? – kandroid

+0

@kandroid自分で作成したUserDataRepositoryです。 LogonInfoViewModelが返され、データベースなどから取得します。 – Junto

関連する問題