我在使用asp.net core 2.0
有条件地获取html页面时发生了一个奇怪的事件 <head>
@{
var user = await _userManager.FindByNameAsync(User.Identity.Name);
}
</head>
<body>
@if (user != null)
{
<a href="/user/edit/?username=@user.UserName" class="dropdown-toggle">
<span class="hidden-xs">@user.FullName</span>
</a>
}
</body>
对于此布局,它会出错:&#34;名称&#39;用户&#39;在当前上下文中不存在它曾经在.net核心1.1和经典asp.net中运行良好。
然而,如果我喜欢这样,那么它可以正常工作。太奇怪了。
<body>
@{
var user = await _userManager.FindByNameAsync(User.Identity.Name);
if (user != null)
{
<a href="/user/edit/?username=@user.UserName" class="dropdown-toggle">
<span class="hidden-xs">@user.FullName</span>
</a>
}
}
答案 0 :(得分:0)
似乎你不能在“head”标签内声明变量。我尝试了以下内容并且工作得很好:
@{
var user = await _userManager.FindByNameAsync(User.Identity.Name);
}
<head>
...
</head>
<body>
@if (user != null)
{
<a href="/user/edit/?username=@user.UserName" class="dropdown-toggle">
<span class="hidden-xs">@user.FullName</span>
</a>
}
</body>