Asp.net core mvc MVC向视图传递数据

Asp.net core mvc MVC向视图传递数据,asp.net-core-mvc,Asp.net Core Mvc,我试图为登录的用户提供delete post功能,其ID与post中的userId相同。有两个控制器帐户负责用户登录和发布控制器。 创建新帖子时,这就是如何在帖子控制器中的创建操作中获得用户ID: var user\u id=userManager.GetUserId(HttpContext.user); 在“发布详细信息”部分中有两个按钮Edit和Delete 我想用if-else隐藏按钮,但我不知道如何访问userId @if(signInManager.IsSignedIn(用户)和&M

我试图为登录的用户提供
delete post
功能,其
ID
与post中的
userId
相同。有两个
控制器
帐户
负责用户登录和
发布
控制器
。 创建新帖子时,这就是如何在帖子控制器中的创建操作中获得
用户ID

var user\u id=userManager.GetUserId(HttpContext.user);
在“发布详细信息”部分中有两个按钮
Edit
Delete

我想用
if-else
隐藏按钮,但我不知道如何访问
userId

@if(signInManager.IsSignedIn(用户)和&Model.Item.userId==??)
{
编辑
删除
}

我应该创建一个
Cookie
,还是可以以某种方式使用
UserManager

有很多方法可以实现这一点,例如,您可以在controller中读取用户ID,并将viewbag设置为保留该值。或者您可以通过以下方式直接在razor中获取用户id:

@using Microsoft.AspNetCore.Identity
@inject UserManager<ApplicationUser> UserManager

@if (signInManager.IsSignedIn(User) && Model.Item.userId == @UserManager.GetUserId(User))
@using System.Security.Claims;
@if (signInManager.IsSignedIn(User) && Model.Item.userId == @User.FindFirstValue(ClaimTypes.NameIdentifier))