码农知识堂 - 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编程系列三——实体
    学习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编程系列十三——路由(完)

     

     

             通过前面几篇文章的学习,我们的图书修改页面已经能正常运行了,但现在的呈现效果不是很理想,主要标题显示的是英文。我们不想看到的时间(如下图所示0:00:00),并且希望把“ReleaseDate”修改成“出版日期”。现在的程序运行效果如下图。

     

         本文所实现的图书信息修改功能,在前面的路由篇中已经实现了,本文只是将其拿出来,单独讲解一下。

      1. 我们在Visual Studio 2022的解决方案资源管理器中打开Pages/BookIndex.razor文件,修改代码如下:

    复制代码
    @page "/BookIndex"
    @using BlazorAppDemo.Models
    @using Microsoft.EntityFrameworkCore
    
     
    @inject IDbContextFactory dbFactory
    @inject NavigationManager NavigationManager
     
    
    图书列表
    
    

    图书列表

    class="table-responsive" width="90%">    @foreach (var item in books) {   }
    书名 作者 价格 出版日期 库存数量 已租数量 操作
    @item.Name @item.Author @item.Price @item.ReleaseDate.ToShortDateString() @item.StockQty @item.Qty "/AddBook?Id=@item.ID">编辑
      @code { private static BookContext _context; private List books = new List(); protected override async Task OnInitializedAsync() { _context = dbFactory.CreateDbContext(); books=_context.Book.ToList(); await base.OnInitializedAsync(); } public void EditBook(MouseEventArgs e ,int Id) { NavigationManager.NavigateTo("/AddBook?Id="+Id.ToString()); } } 
    复制代码
             2.在Visual Studio 2022的解决方案资源管理器中,找到 AddBook.razor 组件,使用鼠标左键双击,在文本编辑器中打开。修改代码如下:

     

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

    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(); }   public string Id { get; set; }   protected override void OnParametersSet() { var query = new Uri(NavigationManager.Uri).Query; var queryDic = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(query);   if (queryDic.Count > 0) { Id = queryDic["Id"].ToString() ?? "0"; if (!string.IsNullOrEmpty(Id)) { if (Id != "0") { int iId = int.Parse(Id); var book = _context.Book.Find(iId); if (book != null) { addBook = book; } }   } } }     private void ValidSubmitInfo(EditContext editContext) {   if (editContext.Model is not Book addBook) { Message = "你编辑的不是图书信息,校验通过。正在保存。";   } Save(editContext); } private void InvalidSubmitInfo(EditContext editContext) { if (editContext.Model is not Book addBook)   { Message = "你编辑的图书信息校验不通过,请修改。"; }   }   private void Save(EditContext editContext) { bool dataIsValid = editContext.Validate(); if (!dataIsValid) { Message = "你编辑的图书信息校验不通过,请修改。"; return; }   if (editContext.Model is not Book addBook) { Message = "你编辑的不是图书信息。"; return; } if (string.IsNullOrEmpty(Id) || Id == "0" ) { _context.Add(editContext.Model); } int cnt= _context.SaveChanges(); if (cnt>0) { Message = "图书信息保存成功!"; }else { Message = "图书信息保存失败!";   }        } }
    复制代码

         3. 在Visual Studio 2022的菜单栏上,找到“调试à开始调试”或是按F5键,Visual Studio 2022会生成BlazorAppDemo应用程序,并在浏览器中打开Home页面,我们我们使用鼠标左键点击左边菜单上的“图书列表”菜单项,浏览器会显示我们修改过的图书列表页面。如下图。

         4.在浏览器的图书列表页面,将鼠标指针悬停在“编辑”按钮上以查看,链接背后的URL值。使用鼠标左键点击我们要修改的图书信息的“编辑”按钮,浏览器会自动跳转到AddBook页面,并将我们需要修改的图书信息显示出来。如下图。

        5.在AddBook页面中的“类型”与“已租数量”中分别填入“A”与“2”,然后使用鼠标点击“保存”按钮。如下图。

     

     

  • 相关阅读:
    发送成绩的app或小程序推荐
    seata的部署和集成
    操作系统学习案例20240222-liunx自定义systemctl系统服务
    【布里渊现象】光纤布里渊温度和应变分布同时测量系统研究
    Coremail邮件安全:如何防范校园邮件新威胁
    Windows11右键添加新建markdown格式文件的几种方法
    利其器(2)——idea常用配置_提高开发效率
    谈一谈冷门的C语言爬虫
    Visual Studio Code 自动编译 TypeScript
    微信小程序开发之自定义组件(会议OA项目其他页面搭建)
  • 原文地址:https://www.cnblogs.com/chillsrc/p/16929709.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号