如何解决如何在ASP.NET Core MVC中自动绑定登录用户
我想在创建 Project 时自动将当前用户对象绑定到 Project 对象。
型号:
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);
}
我已经搜索了互联网,但找不到令人满意的答案。 谢谢!
解决方法
我想在创建项目时自动将当前用户对象绑定到Project对象。
根据您的代码,似乎您实现了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>
测试结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。