如何解决ASP NET Core MVC如何通过UserID外键显示列表剃刀模板中SQL表中的数据
我有一个身份表,如AspNetUsers和其他。我从AspNetUsers表创建了具有外键UserID到ID的迁移文件,用于使用登录用户ID将文件保存在Files表中。但是在FileManager视图中,我可以看到“文件”表中的所有文件,但是我只需要显示AspNetUsers中UserID = Id的文件(我的意思是登录用户的ID)。我该怎么办?
我认为我需要在FileManager函数中编辑一些信息,但是我对此并不自信。如果您需要来自控制器或ASP.NET Core项目中其他文件的更多代码,我可以为您提供。
我的WorkSpaceController
中的这段代码具有其他功能,可以上传新文件和执行其他操作,但是此FileManager
函数从var中的上下文获取数据并显示在FileManagerView
上:>
private readonly TextCloudContext Context;
public IActionResult FileManager()
{
var items = Context.Files.ToList();
return View(items);
}
这是TextCloudContext
代码:
namespace TextCloud.Data
{
public class TextCloudContext : IdentityDbContext<TextCloudUser>
{
public TextCloudContext(DbContextOptions<TextCloudContext> options) : base(options)
{
}
public DbSet<File> Files { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
}
希望您能帮助我!另外,文件dbo具有UserId外键,该外键引用AspNetUsers表中的ID。我使用Add-Migration命令和Update-Database创建“文件”表,因此它可以很好地工作并使用当前用户ID存储文件,但是我只需要在当前登录的用户中在ListRazorView(FileManager.cshtml)中显示信息。
解决方法
在我的FileManager视图中,我看到了文件表中的所有文件,但是我只需要显示AspNetUsers中UserID = Id的文件(我的意思是登录用户的ID)。我该怎么办?
要达到上述要求,您可以尝试调用UserManager.GetUserId(ClaimsPrincipal)方法来获取用户ID,然后根据检索到的用户ID查询文件,如下所示。
concurrent.futures
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。