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”。

转载于:https://www.cnblogs.com/chonghanyu/p/8401741.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值