无法有条件地获得html渲染?

时间:2017-11-14 04:23:02

标签: c# asp.net-mvc asp.net-core asp.net-core-2.0

我在使用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>
     }
 }

1 个答案:

答案 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>