zoukankan      html  css  js  c++  java
  • Asp.net core 2.0.1 Razor 的使用学习笔记(四)

    ASP.net core 2.0.1 中 asp.net identity 2.0.1 的基本使用(三)—用户注册

    一、修改用户注册

    1、打开Pages文件夹》Account》Register.cshtml,然后双击Register.cshtml.cs

    找到public class InputModel,在这里个类里添加UserName属性

    [Required]
    [StringLength(20, ErrorMessage = "{0} 必须至少包含 {2} 个字符,最多20个字符。", MinimumLength = 6)]
    [Display(Name = "用户账号")]
    [DataType(DataType.Text)]
    [RegularExpression("^[a-zA-Z0-9_]{6,20}$", ErrorMessage = "用户名由字母或数字组成。")]
    public string UserName { get; set; }

    这里说明下, Razor页面模式跟mvc在此出现了严重的不同。 但就代码说没有什么不同几乎完全一样,但是存放的位置却有了根本的区别。个人研究分析的结果是:Razor页面模式其实是把mvc中的控制器化整为零了,即原来控制器中的操作代码被分布放到了各个页面的.cshtml.cs文件中了。这样一来由原来mvc中文件按类型分类变成了按功能分类,这样的好处就是每个页面形成了模块化,这个页面涉及的数据都在这里,便于维护,不用控制器、模型、视图来回切换了。

    2、修改public async Task<IActionResult> OnPostAsync(string returnUrl = null)中的var user = new ApplicationUser { UserName = Input.Email, Email = Input.Email };

    改为var user = new ApplicationUser { UserName = Input.UserName, Email = Input.Email };

    因为每个页面只有一个操作了,所以也就只有这一个OnPostAsync方法了。

    3、打开Pages文件夹》Account》Register.cshtml,在register_Page文件中(其实就是下面的那个文件)约第15行的位置,添加“用户账号”代码:

                <div class="form-group">
                    <label asp-for="Input.UserName"></label>
                    <input asp-for="Input.UserName" class="form-control" />
                    <span asp-validation-for="Input.UserName" class="text-danger"></span>
                </div>

    二、修改login。因为改为了用户名注册,如果还用email登陆的话,一定出现错误。

    1、打开Pages文件夹》Account》login.cshtml,然后双击Login.cshtml.cs

    找到public class InputModel,在这里个类里添加UserName属性

                [Required]
                [StringLength(20, ErrorMessage = "{0} 必须至少包含 {2} 个字符,最多20个字符。", MinimumLength = 6)]
                [Display(Name = "用户账号")]
                [DataType(DataType.Text)]
                [RegularExpression("^[a-zA-Z0-9_]{6,20}$", ErrorMessage = "用户名由字母或数字组成。")]
                public string UserName { get; set; }

    同时要把email属性项去掉或者注释掉,否则你登陆不上去且还不给提示。

    2、修改public async Task<IActionResult> OnPostAsync(string returnUrl = null)中的var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true);

    改为var result = await _signInManager.PasswordSignInAsync(Input.UserName, Input.Password, Input.RememberMe, lockoutOnFailure: true);

    3、打开Pages文件夹》Account》Login.cshtml,在Login_Page文件中(其实就是下面的那个文件)约第16行的位置,修改原来为“Input.Email”的地方改为“Input.UserName”。

  • 相关阅读:
    HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)
    HTML5 学习笔记(二)——HTML5新增属性与表单元素
    apache 运行一段时间出现错误
    先验算法(Apriori algorithm)
    Opera官网打不开 下载Opera最新版本的实际地址
    网址查看浏览器内核版本
    小鸟云四个数据中心介绍
    nilcms file类 简单文件缓存实现
    小鸟云优惠券 云服务器介绍
    PHP中测试in_array、isset、array_key_exists性能
  • 原文地址:https://www.cnblogs.com/chonghanyu/p/8401741.html
Copyright © 2011-2022 走看看