Asp.net core 如何在ASP.NET核心MVC中自动绑定登录用户

Asp.net core 如何在ASP.NET核心MVC中自动绑定登录用户,asp.net-core,entity-framework-core,asp.net-core-mvc,asp.net-core-identity,Asp.net Core,Entity Framework Core,Asp.net Core Mvc,Asp.net Core Identity,我想在创建项目时自动将当前用户对象绑定到项目对象 型号: public class Project { public string ProjectId { get; set; } public string UserId { get; set; } public ApplicationUser User { get; set; } } 控制器: public async Task<IActionResult> Create([Bind("Projec

我想在创建项目时自动将当前用户对象绑定到项目对象

型号:

public class Project
{
   public string ProjectId { get; set; }

   public string UserId { get; set; }

   public ApplicationUser User { get; set; }
}
控制器:

public async Task<IActionResult> Create([Bind("ProjectId,UserId")] Project project)
{
  if (ModelState.IsValid)
  {
      _context.Add(project);
      await _context.SaveChangesAsync();
      return RedirectToAction(nameof(Index));
  }

   return View(project);
}
公共异步任务创建([Bind(“ProjectId,UserId”)]Project)
{
if(ModelState.IsValid)
{
_添加(项目);
wait_context.SaveChangesAsync();
返回重定向到操作(名称(索引));
}
返回视图(项目);
}
我在网上搜索过,但还没有找到满意的答案。 谢谢大家!

我想在创建项目时自动将当前用户对象绑定到项目对象

根据您的代码,您似乎实现了
Project
ApplicationUser
之间的关系,并且
Project.UserId
是外键

为了满足您的需求,您可以参考以下代码片段,根据当前登录用户动态填充
UserId
输入

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

@{
    ViewData["Title"] = "Create";
}

<h1>Create</h1>

<h4>Project</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="ProjectId" class="control-label"></label>
                <input asp-for="ProjectId" class="form-control" />
                <span asp-validation-for="ProjectId" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="UserId" class="control-label"></label>
                <input asp-for="UserId" readonly class="form-control" value="@UserManager.GetUserAsync(User).Result.Id" />
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
@模型项目
@使用Microsoft.AspNetCore.Identity

@InjectUserManager

属性
Bind
用于从请求进行模型绑定,
UserId
是否正在提交但未绑定?还是要绑定到当前登录用户?您的意思是在添加项目之前,获取当前登录用户的id,将id值绑定到项目的
用户id
用户
,然后将项目保存到数据库中?