以下是我的观点:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/dropdownhover")
@Scripts.Render("~/bundles/modernizr")
</head>
<body ng-app>
<div class="navbar-fixed-top">
@if (User.Identity.IsAuthenticated)
{
@Html.Action("_Index", "MainMenu")
}
</div>
<div class="container body-content">
@RenderBody()
<footer class="footer navbar-fixed-bottom">
<div ng-if="User.Identity.IsAuthenticated" style="margin:10px;">
Hello, @ViewBag.User
</div>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/dropdownhover")
@Scripts.Render("~/bundles/angular")
@Scripts.Render("~/bundles/bootbox")
@RenderSection("scripts", required: false)
</body>
</html>
出于某种原因,就“角度”而言,“User.Identity.IsAuthenticated”似乎是假的或未定义的,因为我的“Hello,@ ViewBag.User”永远不可见。但是上面显示我的主菜单的“User.Identity.IsAuthenticated”工作正常。
我认为我错过了一些愚蠢的东西,但我似乎无法弄清楚是什么,因为我这样做与此处指示的另一篇文章一样。
答案 0 :(得分:0)
在第二个User.Identity.IsAuthenticated
之前添加@更正:应该是&#39; @ User.Identity.IsAuthenticated&#39; ===&#39; True&#39;
然而,Razor不喜欢ng - **所以它们应该用作数据ng-**,以防止剃刀解析那些