码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 学习ASP.NET Core Blazor编程系列九——服务器端校验


    学习ASP.NET Core Blazor编程系列一——综述
    学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)
    学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)

    学习ASP.NET Core Blazor编程系列二——第一个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编程系列八——数据校验
     

    提交表单时,在服务器端进行表单验证

          EditForm 组件中,有三个事件可用于触发表单提交操作:

    • OnSubmit:无论验证结果如何,只要用户提交表单,就会触发此事件。
    • OnValidSubmit:当用户提交表单并且他们的输入验证通过时,将触发此事件。
    • OnInvalidSubmit:当用户提交表单并且他们的输入验证失败时,将触发此事件。

           如果使用 OnSubmit事件,则不会触发其他两个事件。可以使用EditContext的Model参数来处理输入数据。如果要编写自己的逻辑来处理表单提交,请使用此事件。具体代码如下:

    复制代码
    @page "/AddBook"
    @using BlazorAppDemo.Models
    @using Microsoft.EntityFrameworkCore
    @inject IDbContextFactory dbFactory
     
    

    AddBook

    "
    Save">
    @Message

    图书名称: "@(() => addBook.Name)" />

    作者: "@(() => addBook.Author)" />

    出版日期:

    价格:

    类型: "@(() => addBook.Type)" />

    总页数:

    库存数量: "@(() => addBook.StockQty)" />

    已租数量:

    "submit" class="btn btn-primary" value="Save" /> @code { private string Message = string.Empty; private static BookContext _context; private Models.Book addBook = new Book(); protected override Task OnInitializedAsync() { _context = dbFactory.CreateDbContext(); return base.OnInitializedAsync(); } private void Save(EditContext editContext) { bool dataIsValid = editContext.Validate(); if (!dataIsValid) { Message = "你编辑的图书信息校验不通过,请修改。"; return; } if (editContext.Model is not Book addBook) { Message = "你编辑的不是图书信息。"; return; } _context.Add(editContext.Model); int cnt= _context.SaveChanges(); if (cnt>0) { Message = "图书信息保存成功!"; }else { Message = "图书信息保存失败!"; } } }
    复制代码
            第十一,在Visual Studio 2022的菜单栏上,找到“调试—》开始调试”或是按F5键,Visual Studio 2022会生成BlazorAppDemo应用程序,并在浏览器中打开Home页面,我们使用鼠标点击左边的菜单栏上的“添加图书”菜单项,然后使用鼠标左键点击“保存”按钮,由于我们没有输入正确的数据,校验组件将会提示我们要输入的数据。如下图。在图中红框处,显示了我们在后台处理之后,返回到前端的提示信息。

     

           第十二,如果改用 OnValidSubmit 和 OnInvalidSubmit这两个事件,则如果校验不通过则会触发OnInvalidSubmit事件,反之如果校验通过,则会触发OnValidSubmit事件。

    复制代码
    @page "/AddBook"
    @using BlazorAppDemo.Models
    @using Microsoft.EntityFrameworkCore
    @inject IDbContextFactory dbFactory
     
    

    AddBook

    @Message

    图书名称: "@(() => addBook.Name)" />

    作者: "@(() => addBook.Author)" />

    出版日期:

    价格:

    类型: "@(() => addBook.Type)" />

    总页数:

    库存数量: "@(() => addBook.StockQty)" />

    已租数量:

    "
    submit" class="btn btn-primary" value="Save" /> @code { private string Message = string.Empty; private static BookContext _context; private Models.Book addBook = new Book(); protected override Task OnInitializedAsync() { _context = dbFactory.CreateDbContext(); return base.OnInitializedAsync(); } private void ValidSubmitInfo(EditContext editContext) { if (editContext.Model is Book addBook) { Message = "你编辑的不是图书信息,校验通过。正在保存。" } } private void InvalidSubmitInfo(EditContext editContext) { if (editContext.Model is Book addBook) { Message = "你编辑的图书信息校验不通过,请修改。"; } } }
    复制代码
           第十三,在Visual Studio 2022的菜单栏上,找到“调试—》开始调试”或是按F5键,Visual Studio 2022会生成BlazorAppDemo应用程序,并在浏览器中打开Home页面,我们使用鼠标点击左边的菜单栏上的“添加图书”菜单项,然后使用鼠标左键点击“保存”按钮,由于我们没有输入正确的数据,没有通过校验规则,页面重新显示表单(如果我们填写过数据,则会显示我们刚才填写的数据),同时页面上将会提示我们要输入的数据的提示信息。如下图。在图中红框处,显示了我们在后台处理之后,返回到前端的提示信息。

     

     

  • 相关阅读:
    Linux进程信号的处理
    软件测试中的集成测试到底是什么?集成的方法又有哪些?
    Java学习-MyBatis学习(四)
    为什么Proteus串口无法正常显示
    卡莱特在创业板上市:IPO首日跌破发行价,周锦志为实际控制人
    HCIA-Access V2.5 华为认证接入网络工程师学习笔记第二章
    django使用多个数据库实现
    向着趋势奔跑:银行客户中心转型,重构商业模式是关键
    VM虚拟机连接NAT虚拟网络并上网的总结
    条码工具 Dynamic Web TWAIN HTML5 版本的工作原理
  • 原文地址:https://www.cnblogs.com/chillsrc/p/16840758.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号