1、为Study.Trade.Blazor.Server.Host引入两个包

成功后效果如下:

2、修改Study.Trade.Blazor.Server.Host的Pages目录下的_Host.cshtml文件

没有修改前是这样:

修改后是这样:

3、修改Program.cs

官网说了,net 5就修改StartUp.cs,net 6以上就修改Program.cs。我们都net 7了,自然是修改Program.cs

没有修改前(我们将在红框的两行代码中间增加内容)

修改后:

4、修改Web的承载方式,不使用IIS Express。

5、启动吧

点“高级”,再选择“接受风险并继续”

6、浏览器显示了新的错误

修复这个错误,就是需要运行abp install-libs这个命令

7、为Study.Trade.Blazor.Server.Host运行abp install-libs

在Study.Trade.Blazor.Server.Host项目上点右键,选择“在终端中打开”

执行命令abp install-libs

耐心等待:

执行成功啦:

8、再次启动

成功啦!

但是只是项目在引入了BootstrapBlazor组件后,“依然能正常运行”而已,我们并没有使用任何BootstrapBlazor的控件。

9、为Study.Trade.Blazor项目添加BootstrapBlazor的包

10、修改Study.Trade.Blazor项目的_Imports.razor文件

修改前:

修改后:

1)删除了ABP默认的Blazorise组件需要的2行命名空间;

2)BootstrapBlazor组件需要引用BootstrapBlazor.Components

3)我们的例子需要ABP Suite自动生成的和Customer Order有关的代码,所以需要引用Study.Trade.CustomerOrders

11、开始写我们的第一个Blazor页面

如下图,在Pages/Trade目录上点右键,选择“添加”,再选择“Razor组件……”:

名称我们输入OrderList,然后点“添加(A)”:

成功后如下图:

12、设置页面的网址

就是在razor顶部加一句@page "/orders"即可:

13、注入订单的服务

就是加一句@inject ICustomerOrdersAppService CustomerOrdersAppService

(在__mports.razor里已经引用了命名空间了)

14、用BootstrapBlazor的Table组件来呈现CustomerOrder的列表

15、强势启动一下

启动后,不要点“登入”按钮,而是直接在浏览器地址栏后边加上/orders,进入我们开发的页面。

控制台报错:

报的错误是权限异常,也就是用户不须有特定的权限。

浏览器的Table的位置一直转啊转,网页底部有黄色警告栏

15、给页面声明需要的授权

16、再访问/orders路径的时候,被重定向到了登入页面

输入默认用户admin

默认密码:

1q2w3E*

登入后自动跳转到了/orders

这篇文章就先到这里。

在ABP的模块解决方案中使用BootstrapBlazor的更多相关文章

  1. 精简ABP的模块依赖

    ABP的模块非常方便我们扩展自己的或使用ABP提供的模块功能,对于ABP自身提供的模块间的依赖关系想一探究竟,并且试着把不必要的模块拆掉,找到那部分核心模块.本次使用的是AspNetBoilerpla ...

  2. 3.2 Dependencies of the Projects in the Solution 解决方案中项目间的依赖项

    3.2 Dependencies of the Projects in the Solution 解决方案中项目间的依赖项 The diagram below shows the essential ...

  3. 探索ABP的EventHub解决方案

    在上一章中,我们构建了一个简单的全栈 Web 应用程序,我们已经看到了使用 ABP 框架开发应用的典型流程,在接下来,我们将使用 ABP 框架创建更高级的应用程序. 给出具有现实世界复杂性的例子并不容 ...

  4. 手动从0搭建ABP框架-ABP官方完整解决方案和手动搭建简化解决方案实践

      本文主要讲解了如何把ABP官方的在线生成解决方案运行起来,并说明了解决方案中项目间的依赖关系.然后手动实践了如何从0搭建了一个简化的解决方案.ABP官方的在线生成解决方案源码下载参考[3],手动搭 ...

  5. ABP之模块

    ABP的反射 为什么先讲反射,因为ABP的模块管理基本就是对所有程序集进行遍历,再筛选出AbpModule的派生类,再按照以来关系顺序加载. ABP对反射的封装着重于程序集(Assembly)与类(T ...

  6. ABP之模块系统

    简介 ASP.NET Boilerplate提供了构建模块的基础结构,并将它们组合在一起以创建应用程序. 模块可以依赖于另一个模块. 通常,一个程序集被视为一个模块. 如果创建具有多个程序集的应用程序 ...

  7. P/Invoke出现错误 System.NullReferenceException”类型的未经处理的异常在 未知模块。 中发生 未将对象引用设置到对象的实例。

    问题 “System.NullReferenceException”类型的未经处理的异常在 未知模块. 中发生 未将对象引用设置到对象的实例. 解决方案 1.尝试 用管理员身份运行CMD,输入nets ...

  8. 在SharePoint解决方案中使用JavaScript (2) – 模块化

    本文是在SharePoint中使用JavaScript的第二篇文章,前面的文章包括: 在SharePoint解决方案中使用JavaScript (0) 在SharePoint解决方案中使用JavaSc ...

  9. TDSQL | 在整个技术解决方案中HTAP对应的混合交易以及分析系统应该如何实现?

    从主交易到传输,到插件式解决方案,每个厂商对HTAP的理解和实验方式都有自己的独到解法,在未来整个数据解决方案当中都会往HTAP中去牵引.那么在整个技术解决方案中HTAP对应的混合交易以及分析系统应该 ...

  10. Abp 审计模块源码解读

    Abp 审计模块源码解读 Abp 框架为我们自带了审计日志功能,审计日志可以方便地查看每次请求接口所耗的时间,能够帮助我们快速定位到某些性能有问题的接口.除此之外,审计日志信息还包含有每次调用接口时客 ...

随机推荐

  1. 【一个小发现】VictoriaMetrics 中 vmselect 的 `-search.denyPartialResponse` 选项不应该开启

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 一直以为vmselect 的 -search.denyPa ...

  2. vm-storage在全部都是旧metric情况下的写入性能测试

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 接上篇:测试所有metric都是存在过的metric的情况 ...

  3. 手撕Vue-监听数据变化

    经过上一篇的介绍,已经实现了将模板编译成具体数据,接下来要介绍的是如何监听数据的变化,本章主要完成这个需求即可. 在我们文章的开始,我写了一个 Vue 双向数据绑定原理的文章当中封装了一个 Obser ...

  4. Linux线程间交互

    前言 上一篇说过,系统会为线程mmap一块内存,每个线程有自己的私有栈,使用局部变量没啥问题.但是实际场景中不可避免的需要线程之间共享数据,这就需要确保每个线程看到的数据是一样的,如果大家都只需要读这 ...

  5. 大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

    大语言模型的预训练[1]:基本概念原理.神经网络的语言模型.Transformer模型原理详解.Bert模型原理介绍 1.大语言模型的预训练 1.LLM预训练的基本概念 预训练属于迁移学习的范畴.现有 ...

  6. 人工智能自然语言处理:N-gram和TF-IDF模型详解

    人工智能自然语言处理:N-gram和TF-IDF模型详解 1.N-gram 模型 N-Gram 是一种基于统计语言模型的算法.它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作,形成 ...

  7. 19.13 Boost Asio 发送TCP流数据

    Boost框架中默认就提供了针对TCP流传输的支持,该功能可以用来进行基于文本协议的通信,也可以用来实现自定义的协议.一般tcp::iostream会阻塞当前线程,直到IO操作完成. 首先来看服务端代 ...

  8. centos7.9重启网卡提示Failed to start LSB: Bring up/down networking.

    前几天给一台机器状态centos7.9系统,设备有2个网口,今天重启网卡一直失败, 查看network状态,怀疑是eth0网卡有问题 查看eth0的网卡配置,发现是eth0网卡的BOOTPROTO=d ...

  9. Python中的UnboundLocalError是什么错误?如何解决?

      在一个月黑风高的夜晚,我们满心欢喜地写出以下代码: money = 10000 # 当前的财产,单位为元 def add_money(value): money += value print('当 ...

  10. ssh原理及使用场景

    用过linux系统的朋友,基本肯定会用过ssh.因为大部分的linux登录都是通过ssh将进行登录,除非你用的是类似windows的桌面版. 一.什么是SSH SSH 为 Secure Shell 的 ...