c# – 如何在Razor中直接从ASP.NET身份获取UserId()方法

我有自定义授权的这个问题我的视图的一些部分(我不想放在PartialView上),而是我使用If语句如下:

@if (item.CurrentComment.Id == Guid.Parse(ViewBag.UserId) || repository.IsUserInRoles(Guid.Parse(ViewBag.UserId),"Manager") )
{
    <dd>
        <a href="@Url.Action("EditComment", "Ticketing",new { id = item.CurrentComment.Id, ticketId = Model.Tickets.CurrentTicket.Id })" class="btn btn-primary btn-sm" data-toggle="tooltip" data-placement="left">Edit</a>
    </dd>
    <dd>
        <a href="@Url.Action("RemoveComment", "Ticketing",new { id = item.CurrentComment.Id, ticketId = Model.Tickets.CurrentTicket.Id })" class="btn btn-danger btn-sm" data-toggle="tooltip" data-placement="left">Remove</a>
    </dd>
}

目前我在我的控制器中获取了UserId并使用如下的ViewBag传递它:

ViewBag.UserId = User.Identity.GetUserId(); 

但我想知道如何直接在剃刀中调用GetUserId方法,所以我不再使用ViewBag发送它.我尝试过使用User.Identity.但是方法是未知的,我认为它不知道扩展名.有办法吗?

解决方法:

在视图文件的顶部添加以下using语句.

使用Microsoft.AspNet.Identity;

在此之后,你应该可以使用
User.Identity.GetUserId()

上一篇:Razor syntax reference for ASP.NET Core


下一篇:通过JavaScript中的IEnumerable模型进行迭代