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
或用户
,然后将项目保存到数据库中?