从零开始Blazor Server(15)--总结
我们用了14篇文章,基本上把一个后台管理系统需要的UI部分都说的差不多了。所以这套文章也该到了结束的时候了。这里面有很多问题,比如我们直接使用UI来拉数据库信息而没有使用service,再比如我们大量的用了同步,即使使用Task.FormResult也不用异步处理,再比如整个项目里没有任何缓存,所有的操作都直接处理数据库,再再比如半残废的
清晰表达、持续积累、长期主义。
我们用了14篇文章,基本上把一个后台管理系统需要的UI部分都说的差不多了。所以这套文章也该到了结束的时候了。这里面有很多问题,比如我们直接使用UI来拉数据库信息而没有使用service,再比如我们大量的用了同步,即使使用Task.FormResult也不用异步处理,再比如整个项目里没有任何缓存,所有的操作都直接处理数据库,再再比如半残废的
目前,我们只做了在用户管理里强行修改密码,而没有做用户自行修改密码的功能,今天我们来实现它。首先,我们的用户密码修改最好的位置应该就是在头像下面的下拉菜单里,所以我们在那里的LinkTemplate增加一个LinkButton。 <Logout ImageUrl="images/argo-c.png" DisplayName
我们现在做了用户管理、角色管理、菜单管理。但是大家有没有发现,我们的菜单要变化的话必须要刷新页面才行。这个体验感觉不太好。今天我们就用全局通知组件来解决这个问题。首先我们要改造以下我们的MainLayout,之前我们是在OnInitialized中直接获取的菜单,这样肯定没法刷新了,所以我们要先把获取菜单的内容单独拿出来 priva
上个星期有点事,导致没法及时更新。现在我们继续更我们的从零开始系列。这个系列也快要结束了,目前规划再有2-3篇,就结束了。今天我们来说编辑菜单的问题,说实话菜单这种东西,你不更新代码加个页面,单独加个菜单没啥意义。除非你要跳转到其他的网站去。但是呢,你没有这玩意感觉又不太完整,就加上吧。菜单管理里,我们主要来说一下table的树形的处理。
用户编辑和角色编辑几乎一模一样,这里先直接贴代码。@page "/user" @using BlazorLearn.Entity @using Furion.DataEncryption <Table TItem="UserEntity" IsBordered="true" ShowAddButton="true" ShowToolba
例图目前的样式是这样的:其中角色在一个table里,然后可以增删改查,并且可以给指定的用户分配权限。创建文件首先我们在Pages/Admin目录下新建一个Role.razor。因为我们的Admin目录已经使用了_Import来给整个文件夹添加了授权特性,所以我们就无需再次添加了。添加table这里添加一个table来显示所有的角色。<Ta
目前我们的MainLayout还是默认的,这里我们需要修改为BootstrapBlazor的Layout,并且处理一下菜单。修改MainLayoutBootstrapBlazor已经自带了一个Layout组件,这个组件里常用功能已经很全了,所以我们直接使用这个组件即可。<Layout SideWidth="0" IsPage="true"
这篇干啥这篇文章主要是把前面的一些东西稍微调整一下,使其更适合后面的内容。主要是两个事,一个是把原来的PermissionEntity直接变成MenuEntity,直接让最后一级是菜单,这样后面就简单很多。另外增加一些默认的菜单为后面的文章做准备。另外就是调整一下Pages里面的目录结构,让我们不用每个页面都去加@attribute [A
序上面两篇我们讲了怎么用OnNavigateAsync来验证权限,又写了怎么用策略来验证权限。其实我们既然集成了Fution,就可以用Furion带的方式来验证。创建AdminHandler我们还是去创建AdminHandler,但是跟策略不一样的是我们的Handler不继承于AuthorizationHandler,而是继承Furion
写这个的原因现在BootstrapBlazor处于大更新时期,Menu组件要改为泛型模式。本来我们的这一篇应该是把Layout改了,但是改Layout肯定要涉及到菜单,如果现在写了呢,就进入一个发布就过时的状态,就很尴尬,所以后面的就稍微拖一拖。加上昨天有人说我用OnNavigateAsync违反单一性原则,要用策略,所以这里我们说下策略