2017-02-20 11 views
1

У меня есть эта проблема с пользовательской авторизацией в некоторых частях моего Views (который я не хочу ставить на PartialView), вместо этого я использую оператор If как показано ниже:Как получить метод UserId() из идентификатора ASP.NET непосредственно в Razor

@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 метод непосредственно в Raz или так я больше не буду отправлять его с ViewBag. Я пробовал использовать User.Identity., но Метод Неизвестен там, который я предполагаю, что он не знает расширение. есть ли способ вокруг него?

ответ

4

Добавьте следующую инструкцию using в начало вашего файла просмотра.

using Microsoft.AspNet.Identity;

После этого, вы должны быть в состоянии использовать User.Identity.GetUserId()

+1

О том, что было легко :) спасибо. – Valkyrie