Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何使用ASP.NET核心MVC将用户输入存储到数据库中?_Asp.net Mvc_Asp.net Core Mvc - Fatal编程技术网

Asp.net mvc 如何使用ASP.NET核心MVC将用户输入存储到数据库中?

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"> <

我正在努力寻找一个解决方案,如何添加用户输入,如名字、姓氏、zipcode。。。。到数据库。注册期间,电子邮件已存储在数据库中

我试图寻找一些资源,但它们似乎很复杂

家庭控制器

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();
    }
}