Asp.net mvc 如何使用ASP.NET核心MVC将用户输入存储到数据库中?
我正在努力寻找一个解决方案,如何添加用户输入,如名字、姓氏、zipcode。。。。到数据库。注册期间,电子邮件已存储在数据库中 我试图寻找一些资源,但它们似乎很复杂 家庭控制器Asp.net mvc 如何使用ASP.NET核心MVC将用户输入存储到数据库中?,asp.net-mvc,asp.net-core-mvc,Asp.net Mvc,Asp.net Core Mvc,我正在努力寻找一个解决方案,如何添加用户输入,如名字、姓氏、zipcode。。。。到数据库。注册期间,电子邮件已存储在数据库中 我试图寻找一些资源,但它们似乎很复杂 家庭控制器 public async Task<IActionResult> ProfileView(ApplicationUser users) { return View(); } 纵断面图: <form> <div class="form-row"> <
public async Task<IActionResult> ProfileView(ApplicationUser users)
{
return View();
}
纵断面图:
<form>
<div class="form-row">
<div class="form-row col-md-6">
<div class="col">
<label for="firstName">First Name:</label>
<input type="text" class="form-control" placeholder="First name">
</div>
<div class="col col-md-6">
<label for="lastName">Last Name:</label>
<input type="text" class="form-control" placeholder="Last name">
</div>
</div>
<div class="form-group col-md-6">
<label for="inputEmail4">Email</label>
<input type="email" class="form-control" id="inputEmail4" placeholder="Email">
</div>
</div>
名字:
姓氏:
电子邮件
数据库上下文:
public class DataBaseContext: IdentityDbContext<ApplicationUser>
{
public DataBaseContext(DbContextOptions<DataBaseContext> options): base(options)
{
}
public new DbSet<SignUp> Users { get; set; }
public DbSet<Products> Products { get; set; }
}
公共类数据库上下文:IdentityDbContext
{
公共数据库上下文(DbContextOptions):基本(选项)
{
}
公共新数据库集用户{get;set;}
公共数据库集产品{get;set;}
}
用户在视图中填写信息时,应将其存储在现有数据库中。以下是登录后修改用户配置文件的工作示例: 纵断面图:
@model MVC2_2Project.Models.ApplicationUser
<div class="row">
<div class="col-md-6">
<form id="profile-form" method="post">
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group">
<label asp-for="FirstName"></label>
<input asp-for="FirstName" class="form-control" placeholder="First name"/>
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="LastName"></label>
<input asp-for="LastName" class="form-control" placeholder="Last name"/>
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
<button id="update-profile-button" type="submit" class="btn btn-primary">Save</button>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
@model MVC2\u 2Project.Models.ApplicationUser
拯救
@节脚本{
}
家庭控制器:
public class HomeController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly ApplicationDbContext _context;
public HomeController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
ApplicationDbContext context)
{
_userManager = userManager;
_signInManager = signInManager;
_context = context;
}
public async Task<IActionResult> ProfileView()
{
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
return View(user);
}
[HttpPost]
public async Task<IActionResult> ProfileView(ApplicationUser users)
{
if (!ModelState.IsValid)
{
return View();
}
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
user.FirstName = users.FirstName;
user.LastName = users.LastName;
_context.Users.Update(user);
await _context.SaveChangesAsync();
await _signInManager.RefreshSignInAsync(user);
return RedirectToAction();
}
}
公共类HomeController:控制器
{
私有只读用户管理器_UserManager;
专用只读签名管理器\u签名管理器;
私有只读应用程序的bContext\u上下文;
公共家庭控制器(
用户管理器用户管理器,
SignInManager SignInManager,
ApplicationDbContext(上下文)
{
_userManager=userManager;
_signInManager=signInManager;
_上下文=上下文;
}
公共异步任务概要视图()
{
var user=await\u userManager.GetUserAsync(用户);
if(user==null)
{
返回NotFound($“无法加载ID为“{{u userManager.GetUserId(user)}”的用户”);
}
返回视图(用户);
}
[HttpPost]
公共异步任务概要视图(ApplicationUser用户)
{
如果(!ModelState.IsValid)
{
返回视图();
}
var user=await\u userManager.GetUserAsync(用户);
if(user==null)
{
返回NotFound($“无法加载ID为“{{u userManager.GetUserId(user)}”的用户”);
}
user.FirstName=users.FirstName;
user.LastName=users.LastName;
_context.Users.Update(用户);
wait_context.SaveChangesAsync();
等待(u signInManager.RefreshSignInAsync)(用户);;
返回重定向到操作();
}
}
我不清楚您在流程的哪一部分需要帮助?你的问题太宽泛了。请把问题缩小到你遇到的具体问题。请参考教程(如)了解整个过程的解释。我更新了信息,看看是否有帮助。您的表单没有任何操作。您需要为表单指定一个操作,该操作会将表单发回控制器操作方法,您需要在那里保存数据。我放置了表单操作,但我仍然不知道如何存储信息。您学习过Microsoft提供的MVC教程吗?它将解释这种基本概念
public class HomeController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly ApplicationDbContext _context;
public HomeController(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
ApplicationDbContext context)
{
_userManager = userManager;
_signInManager = signInManager;
_context = context;
}
public async Task<IActionResult> ProfileView()
{
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
return View(user);
}
[HttpPost]
public async Task<IActionResult> ProfileView(ApplicationUser users)
{
if (!ModelState.IsValid)
{
return View();
}
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
user.FirstName = users.FirstName;
user.LastName = users.LastName;
_context.Users.Update(user);
await _context.SaveChangesAsync();
await _signInManager.RefreshSignInAsync(user);
return RedirectToAction();
}
}