3

新しい MVC 5 プロジェクトには、現在のユーザー名を表示する _LoginPartial があります。

@Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", 
                 "Manage", 
                 "Account", 
                 routeValues: null, 
                 htmlAttributes: new { title = "Manage" })

姓/名フィールドを ApplicationUser クラスに追加しましたが、UserName の代わりにそれらを表示する方法が見つかりません。ApplicationUser オブジェクトにアクセスする方法はありますか? 簡単なキャストを試み(ApplicationUser)Userましたが、不正なキャスト例外が生成されます。

4

2 に答える 2

2

やったよ!

このリンクのヘルプを使用: http://forums.asp.net/t/1994249.aspx?How+to+who+in+my+_LoginPartial+cshtml+all+the+rest+of+the+information+of +ユーザー

私はそのようにしました:

AcountController で、必要なプロパティを取得するアクションを追加します。

 [ChildActionOnly]
    public string GetCurrentUserName()
    {
        var user = UserManager.FindByEmail(User.Identity.GetUserName());
        if (user != null)
        {
            return user.Name;
        }
        else
        {
            return "";
        }
    }

_LoginPartialView で、元の行を次のように変更します。

@Html.ActionLink("Hello " + @Html.Raw(Html.Action("GetCurrentUserName", "Account")) + "!", "Index", "Manage", routeValues: new { area = "" }, htmlAttributes: new { title = "Manage" })
于 2015-01-02T00:04:51.507 に答える