学习ASP.NET Core Blazor编程系列二十三——登录(2)

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

学习ASP.NET Core Blazor编程系列文章之目录学习ASP.NET Core Blazor编程系列一——综述学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)
学习ASP.NET Core Blazor编程系列三——实体学习ASP.NET Core Blazor编程系列五——列表页面学习ASP.NET Core Blazor编程系列七——新增图书学习ASP.NET Core Blazor编程系列八——数据校验学习ASP.NET Core Blazor编程系列十三——路由(完)学习ASP.NET Core Blazor编程系列十五——查询学习ASP.NET Core Blazor编程系列十六——排序学习ASP.NET Core Blazor编程系列二十——文件上传(完)学习ASP.NET Core Blazor编程系列二十一——数据刷新 学习ASP.NET Core Blazor编程系列二十二——登录(1) 
         通过查询微软官网上的文档,我们知道目前Blazor没有内置的密码输入组件,这个用于输入密码的组件需要我们来自己实现。接下来我们就来实现密码输入组件功能。

三、自制密码输入组件

     1. 在Visual Studio 2022的解决方案资源管理器中,鼠标左键选中“Pages”文件夹,右键单击,在弹出菜单中选择“添加—>Razor组件…”,并将组件命名为“InputPassword”。如下图。

     2. 这个密码输入组件需要继承IputBase,并且重写TryParseValueFromString这个方法。这个方法的作用是将用户在表单输入框中输入数据转换成你需要的T类型,例如T是DateTime的话,就要把表单输入框中输入的数据转换成DateTime。

      TryParseValueFromString方法有三个参数,对这三个参数说明如下:


  • value:表单输入框中填写的值
  • result:类型是TValue,和InputBase中设定的T一致,result值会绑定到表单中Model的对应栏位上
  • validationErrorMessage:输入框中输入的数据在进行与类型T转换时,转换失几的给出的错误信息
      3.因为登录界面中表单的输入框接收的都是string类型的数据,而且我们的UserInfo类中的Password也是string,所以不需要我们做任何转换操作,直接将value值赋给result就可以了。具体代码如下:
  1. @inherits InputBase<string>
  2. <input type="password" class="@CssClass" @bind-value="@CurrentValue" />
  3. @code {
  4.     protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage)
  5.     {
  6.         validationErrorMessage = null;
  7.         result = value;
  8.         return true;
  9.     }
复制代码
四、Login页面

        1. 在Visual Studio 2022的解决方案资源管理器中,鼠标左键选中“Pages”文件夹,右键单击,在弹出菜单中选择“添加—>Razor组件…”,并将组件命名为“Login.razor”。

     2.在Visual Studio 2022的文本编辑器中打开Login.razor,我们使用内建的表单组件EditForm来制作登录界面。具体代码如下:
  1. @page "/Login"
  2. @using BlazorAppDemo.Models
  3. @using BlazorAppDemo.Utils
  4.    
  5.         <h3>Login</h3>
  6.         <hr />
  7.         <EditForm  Model="loginModel" OnValidSubmit="SubmitHandler" OnInvalidSubmit="InvalidHandler">
  8.             <DataAnnotationsValidator />
  9.            
  10.             
  11.                 <label for="userName">  @HtmlHelper.GetDisplayName(loginModel ,m=> m.UserName)</label>
  12.                 <InputText @bind-Value="loginModel.UserName" class="form-control" id="userName" />
  13.                 <ValidationMessage For="()=>loginModel.UserName" />
  14.             
  15.             
  16.                 <label for="pwd"> @HtmlHelper.GetDisplayName(loginModel ,m=> m.Password)</label>
  17.                 <InputPassword @bind-Value="loginModel.Password" class="form-control" id="pwd" />
  18.                 <ValidationMessage For="()=>loginModel.Password" />
  19.             
  20.             <span class="form-control-plaintext"></span>
  21.             
  22.                
  23.             <button class="btn btn-primary">登录</button>
  24.                
  25.             
  26.         </EditForm>
  27.    
  28. @code {
  29.     private UserInfo loginModel = new UserInfo();
  30.     private void SubmitHandler()
  31.     {
  32.         Console.WriteLine($"用户名:{loginModel.UserName} ,密码:{loginModel.Password}");
  33.     }
  34.     private void InvalidHandler()
  35.     {
  36.         Console.WriteLine($"用户名: {loginModel.UserName} ,密码:{loginModel.Password}");
  37.     }
  38. }
复制代码
      3.在Visual Studio 2022的菜单栏上,找到“调试-->开始调试”或是按F5键,Visual Studio 2022会生成BlazorAppDemo应用程序,并在浏览器中打开Home页面,我们使用鼠标点击左边的菜单栏上的“登录”菜单项,页面会进入“Login”页面,如下图。

      4.我们使用鼠标左键,直接点击“登录”按钮,页面会提示我们必须输入用户名与密码。如下图。

 

5.当我们输入的用户名与密码,不符合校验规则时,页面会提示我们必须输入符合校验规则的用户名与密码。如下图。

 

     6.最终我们输入了符合校验规则的用户名与密码。如下图。

 

7. 在输入了正确的用户名与密码之后,使用鼠标左键点击“登录”按钮。系统后台获取了我们在表单输入框中输入的用户名与密码。如下图。

 

 
 

 
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表