2017-02-20 32 views
1

我有我的Views(我不想放在PartialView)的一些部分的自定義授權的問題,而不是我使用If聲明如下圖所示:如何從ASP.NET身份直接在Razor中獲取UserId()方法

@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.但方法是未知的,我認爲它不知道擴展名。有沒有辦法解決它?

回答

4

在視圖文件的頂部添加以下using聲明。

using Microsoft.AspNet.Identity;

在此之後,你應該能夠使用 User.Identity.GetUserId()

+1

噢,那是很容易:)感謝。 – Valkyrie

相關問題