HomeControllerのIndexアクションに次のコードがあり、レイアウトの下にコードがあります。ホーム/インデックスビューを呼び出すと、UserNameプロパティは設定されていませんが、ブレークポイントの値を調べると、コントローラに設定されていることがわかります。自分のビューでViewBag設定を使用できないのはなぜですか?
コントローラー:
public ActionResult Index()
{
ViewData.Add("UserName", User.Identity.Name);
return View();
}
ビュー:
@{
if (User.Identity.IsAuthenticated)
{
<text>Hello </text>
@ViewBag.UserName <text> - </text>
@Html.ActionLink("Sign Out", "LogOff", "Account", null, new { style = "font-weight: bold;" })
}
}
EDIT:以下の回答で提案されているように、私は、次のビューのコードをしようとすると、私はコンパイルエラーを取得します:'System.Web.Mvc.HtmlHelper'に 'Display'という名前の適用可能なメソッドはありませんが、そのnaで拡張メソッドがあるようです私。
これは私のネストされたレイアウトの副作用ではないのだろうか?引用されたビューのレイアウトは_ThreeColumnで、後者のレイアウトは_Layoutで、_ViewStartでデフォルトとして設定されています。
であるように製造したHTMLビューのUser.Identity.Nameも? –
@Mika、私はビューで 'User.Identity.Name'を使い始めました。そして、それが現れていないときにデバッグするために追加されたものを追加しました。 – ProfK
Hello @ User.Identity.name - @ Html.ActionLink(...)をやってみましたか? –