分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

MVC修改默认的注册信息Model

发布时间:2023-09-06 02:14责任编辑:顾先生关键词:MVC

FYI :https://blogs.msdn.microsoft.com/webdev/2013/10/16/customizing-profile-information-in-asp-net-identity-in-vs-2013-templates/

1:新建ASP.NET MVC项目,并运行该默认的示例项目,

2:启动Entity Framework Migrations

打开Package Manger Console: Tools->Library Package Manager->Package Manager Console

在控制面板输入命令Enable-Migrations后回车

3:修改默认的认证Model类 Models\IdentityModels.cs中的类ApplicationUser

 ???public class ApplicationUser : IdentityUser ???{ ???????public string Address { get; set; } ???????public string Email { get; set; } ???????public DateTime BirthDate { get; set; } ???}

并在该类的头部添加using System;

4:同步数据库

如果不同步数据库,则运行项目时会报错,因为默认的认证数据库已经生成,对应的表结构已经存在。

运行命令Add-Migration "Birthdate"

运行命令Update-Database

数据库表结构成功更新

5:修改视图Model  AccountViewModels.cs

 ???public class RegisterViewModel ???{ ???????[Required] ???????[Display(Name = "User name")] ???????public string UserName { get; set; } ???????[Required] ???????[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] ???????[DataType(DataType.Password)] ???????[Display(Name = "Password")] ???????public string Password { get; set; } ???????[DataType(DataType.Password)] ???????[Display(Name = "Confirm password")] ???????[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] ???????public string ConfirmPassword { get; set; } ???????[Required] ???????public string Address { get; set; } ???????[Required] ???????public string Email { get; set; } ???????[Required] ???????[Display(Name="Birth Date")] ???????public DateTime BirthDate { get; set; } ???}

6:修改Account视图Register.cshtml

@model Bycle.Models.RegisterViewModel@{ ???ViewBag.Title = "Register";}<h2>@ViewBag.Title.</h2>@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" })){ ???@Html.AntiForgeryToken() ???<h4>Create a new account.</h4> ???<hr /> ???@Html.ValidationSummary() ???<div class="form-group"> ???????@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" }) ???????<div class="col-md-10"> ???????????@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" }) ???????</div> ???</div> ???<div class="form-group"> ???????@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) ???????<div class="col-md-10"> ???????????@Html.PasswordFor(m => m.Password, new { @class = "form-control" }) ???????</div> ???</div> ???<div class="form-group"> ???????@Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) ???????<div class="col-md-10"> ???????????@Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) ???????</div> ???</div> ???<div class="form-group"> ???????@Html.LabelFor(m => m.Address, new { @class = "col-md-2 control-label" }) ???????<div class="col-md-10"> ???????????@Html.TextBoxFor(m => m.Address, new { @class = "form-control" }) ???????</div> ???</div> ???<div class="form-group"> ???????@Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) ???????<div class="col-md-10"> ???????????@Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) ???????</div> ???</div> ???<div class="form-group"> ???????@Html.LabelFor(m => m.BirthDate, new { @class = "col-md-2 control-label" }) ???????<div class="col-md-10"> ???????????@Html.TextBoxFor(m => m.BirthDate, new { @class = "form-control" }) ???????</div> ???</div> ???????????????<div class="form-group"> ???????<div class="col-md-offset-2 col-md-10"> ???????????<input type="submit" class="btn btn-default" value="Register" /> ???????</div> ???</div>}@section Scripts { ???@Scripts.Render("~/bundles/jqueryval")}
View Code

7:修改控制器Register

 ???????public async Task<ActionResult> Register(RegisterViewModel model) ???????{ ???????????if (ModelState.IsValid) ???????????{ ???????????????var user = new ApplicationUser() { UserName = model.UserName ,BirthDate=model.BirthDate,Address=model.Address,Email=model.Email}; ???????????????var result = await UserManager.CreateAsync(user, model.Password); ???????????????if (result.Succeeded) ???????????????{ ???????????????????await SignInAsync(user, isPersistent: false); ???????????????????return RedirectToAction("Index", "Home"); ???????????????} ???????????????else ???????????????{ ???????????????????AddErrors(result); ???????????????} ???????????} ???????????// If we got this far, something failed, redisplay form ???????????return View(model); ???????}

8:运行项目,可以看到注册界面新增了三个字段。

  • Add-Migration "Birthdate"

MVC修改默认的注册信息Model

原文地址:https://www.cnblogs.com/yuanhaowen/p/9627678.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved