青岛网站建设推广公司哪家好游戏代理怎么赚钱的

web/2025/10/4 7:52:40/文章来源:
青岛网站建设推广公司哪家好,游戏代理怎么赚钱的,国内最新新闻2022,数据机房建设公司系列文章使用 abp cli 搭建项目给项目瘦身#xff0c;让它跑起来完善与美化#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API#xff0c;包装返回模型再说Swagger#xff0c;分组、描述、小绿锁接入GitHub#xff0c;用JWT保护你的API异常处理和… 系列文章使用 abp cli 搭建项目给项目瘦身让它跑起来完善与美化Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API包装返回模型再说Swagger分组、描述、小绿锁接入GitHub用JWT保护你的API异常处理和日志记录使用Redis缓存数据集成Hangfire实现定时任务处理用AutoMapper搞定对象映射定时任务最佳实战一定时任务最佳实战二定时任务最佳实战三博客接口实战篇一博客接口实战篇二博客接口实战篇三博客接口实战篇四博客接口实战篇五Blazor实战系列一Blazor实战系列二上一篇完成了博客的主题切换菜单和二维码的显示与隐藏功能本篇继续完成分页查询文章列表的数据展示。添加页面现在点击页面上的链接都会提示错误消息因为没有找到对应的路由地址。先在Pages下创建五个文件夹Posts、Categories、Tags、Apps、FriendLinks。然后在对应的文件夹下添加Razor组件。Posts文件夹文章列表页面Posts.razor、根据分类查询文章列表页面Posts.Category.razor、根据标签查询文章列表页面Posts.Tag.razor、文章详情页Post.razorCategories文件夹分类列表页面Categories.razorTags文件夹标签列表页面Tags.razorApps文件夹Apps.razor准备将友情链接入口放在里面FriendLinks文件夹友情链接列表页面FriendLinks.razor先分别创建上面这些Razor组件差不多除了后台CURD的页面就这些了现在来逐个突破。不管三七二十一先把所有页面的路由给确定了指定页面路由使用 page 指令官方文档说不支持可选参数但是可以支持多个路由规则。默认先什么都不显示可以将之前的加载中圈圈写成一个组件供每个页面使用。在Shared文件夹添加组件Loading.razor。!--Loading.razor-- div classloader/div //Posts.razor page /posts/ page /posts/page/{page:int} page /posts/{page:int}Loading /code {/// summary/// 当前页码/// /summary[Parameter]public int? page { get; set; } } 这里我加了三条可以匹配没有page参数带page参数的/posts/page/{page:int}这个大家可以不用加我是用来兼容目前线上的博客路由的。总的来说可以匹配到/posts、/posts/1、/posts/page/1这样的路由。//Posts.Category.razor page /category/{name}Loading /code {/// summary/// 分类名称参数/// /summary[Parameter]public string name { get; set; } } 根据分类名称查询文章列表页面name当作分类名称参数可以匹配到类似于/category/aaa、/category/bbb这样的路由。//Posts.Tag.razor page /tag/{name}Loading /code {/// summary/// 标签名称参数/// /summary[Parameter]public string name { get; set; } } 这个根据标签名称查询文章列表页面和上面差不多一样可以匹配到/tag/aaa、/tag/bbb这样的路由。//Post.razor page /post/{year:int}/{month:int}/{day:int}/{name}Loading /code {[Parameter]public int year { get; set; }[Parameter]public int month { get; set; }[Parameter]public int day { get; set; }[Parameter]public string name { get; set; } } 文章详情页面的路由有点点复杂以/post/开头加上年月日和当前文章的语义化名称组成。分别添加了四个参数年月日和名称用来接收URL的规则使用int来设置路由的约束最终可以匹配到路由/post/2020/06/09/aaa、/post/2020/06/9/bbb这样的。//Categories.razor page /categoriesLoading ///Tags.razor page /tagsLoading ///FriendLinks.razor page /friendlinksLoading / 分类、标签、友情链接都是固定的路由像上面这样就不多说了然后还剩一个Apps.razor。//Apps.razor page /appsdiv classcontainerdiv classpost-wraph2 classpost-title-nbsp;Appsnbsp;-/h2ullia target_blank hrefhttps://support.qq.com/products/75616h3吐个槽_留言板/h3/a/liliNavLink href/friendlinksh3友情链接/h3/NavLink/li/ul/div /div 在里面添加了一个友情链接的入口和一个 腾讯兔小巢 ( https://support.qq.com/products/75616 ) 的链接欢迎大家吐槽留言噢。现在可以运行一下看看点击所有的链接都不会提示错误只要路由匹配正确就会出现加载中的圈圈了。文章列表在做文章列表的数据绑定的时候遇到了大坑有前端开发经验的都知道JavaScript弱类型语言中接收json数据随便玩但是在Blazor中我试了下动态接受传递过来的JSON数据一直报错压根运行不起来。所以在请求api接收数据的时候需要指定接收对象那就好办了我就直接引用API中的.Application.Contracts就行了啊但是紧接着坑又来了目标框架对不上引用之后也运行不起来这里应该是之前没有设计好。于是我就想了一个折中的办法吧将API中的返回对象可以用到的DTO先手动拷贝一份到Blazor项目中后续可以考虑将公共的返回模型做成Nuget包方便使用。那么最终就是在Blazor中添加一个Response文件夹用来放接收对象里面的内容看图有点傻先这样解决后面在做进一步的优化吧。将我们复制进来的东东在_Imports.razor中添加引用。//_Imports.razor using System.Net.Http using System.Net.Http.Json using Microsoft.AspNetCore.Components.Forms using Microsoft.AspNetCore.Components.Routing using Microsoft.AspNetCore.Components.Web using Microsoft.AspNetCore.Components.WebAssembly.Http using Meowv.Blog.BlazorApp.Shared using Response.Base using Response.Bloginject HttpClient Http inject Commons.Common Common inject HttpClient Http注入HttpClient用它来请求API数据。现在有了接收对象接下来就好办了来实现分页查询文章列表吧。先添加三个私有变量限制条数就是一次加载文章的数量总页码用来计算分页还有就是API的返回数据的接收类型参数。/// summary /// 限制条数 /// /summary private int Limit 15;/// summary /// 总页码 /// /summary private int TotalPage;/// summary /// 文章列表数据 /// /summary private ServiceResultPagedListQueryPostDto posts; 然后当页面初始化的时候去加载数据渲染页面因为page参数可能存在为空的情况所以要考虑进去当为空的时候给他一个默认值1。/// summary /// 初始化 /// /summary protected override async Task OnInitializedAsync() {// 设置默认值page page.HasValue ? page : 1;await RenderPage(page); }/// summary /// 点击页码重新渲染数据 /// /summary /// param namepage/param /// returns/returns private async Task RenderPage(int? page) {// 获取数据posts await Http.GetFromJsonAsyncServiceResultPagedListQueryPostDto($/blog/posts?page{page}limit{Limit});// 计算总页码TotalPage (int)Math.Ceiling((posts.Result.Total / (double)Limit)); } 在初始化方法中设置默认值调用RenderPage(...)获取到API返回来的数据并根据返回数据计算出页码这样就可以绑定数据了。if (posts null) {Loading / } else {div classpost-wrap archiveif (posts.Success posts.Result.Item.Any()){foreach (var item in posts.Result.Item){h3item.Year/h3foreach (var post in item.Posts){article classarchive-itemNavLink href(/post post.Url)post.Title/NavLinkspan classarchive-item-datepost.CreationTime/span/article}}nav classpaginationfor (int i 1; i TotalPage; i){var _page i;if (page _page){span classpage-number current_page/span}else{a classpage-number onclick(() RenderPage(_page)) href/posts/_page_page/a}}/nav}else{ErrorTip /}/div } 在加载数据的时候肯定是需要一个等待时间的因为不可抗拒的原因数据还没加载出来的时候可以让它先转一会圈圈当posts不为空的时候再去绑定数据。在绑定数据for循环页码的时候我又遇到了一个坑????这里不能直接去使用变量i必须新建一个变量去接受它不然我传递给RenderPage(...)的参数就会是错的始终会取到最后一次循环的i值。当判断数据出错或者没有数据的时候在把错误提示ErrorTip /扔出来显示。做到这里可以去运行看看了肯定会报错因为还有一个重要的东西没有改就是我们接口的BaseAddress在Program.cs中默认是当前Blazor项目的运行地址。我们需要先将API项目运行起来拿到地址配置在Program.cs中因为现在还是本地开发有多种办法可以解决可以将.HttpApi.Hosting设为启动项目直接运行起来也可以使用命令直接dotnet run。我这里为了方便直接发布在IIS中后续只要电脑打开就可以访问了你甚至选择其它任何你能想到的方式。关于如何发布这里先不做展开有机会的话写一篇将.net core开发的项目发布到 Windows、Linux、Docker 的教程吧。所以我的Program.cs中配置如下//Program.cs using Meowv.Blog.BlazorApp.Commons; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.Extensions.DependencyInjection; using System; using System.Net.Http; using System.Threading.Tasks;namespace Meowv.Blog.BlazorApp {public class Program{public static async Task Main(string[] args){var builder WebAssemblyHostBuilder.CreateDefault(args);builder.RootComponents.AddApp(app);var baseAddress https://localhost;if (builder.HostEnvironment.IsProduction())baseAddress https://api.meowv.com;builder.Services.AddTransient(sp new HttpClient{BaseAddress new Uri(baseAddress)});builder.Services.AddSingleton(typeof(Common));await builder.Build().RunAsync();}} } baseAddress默认为本地开发地址使用builder.HostEnvironment.IsProduction()判断是否为线上正式生产环境改变baseAddress地址。现在可以看到已经可以正常获取数据并且翻页也是OK的然后又出现了一个新的问题????。解决BUG细心的可以发现当我点击头部组件的Postsa 标签菜单时候页面没有发生变化只是路由改变了。思来想去我决定使用NavigationManager这个URI和导航状态帮助程序来解决当点击头部的Postsa 标签菜单直接刷新页面得了。在Common.cs中使用构造函数注入NavigationManager然后添加一个跳转指定URL的方法。/// summary /// 跳转指定URL /// /summary /// param nameuri/param /// param nameforceLoadtrue绕过路由刷新页面/param /// returns/returns public async Task RenderPage(string url, bool forceLoad true) {_navigationManager.NavigateTo(url, forceLoad);await Task.CompletedTask; } 当forceLoad true的时候将会绕过路由直接强制刷新页面如果forceLoad false则不会刷新页面。紧接着在Header.razor中修改代码添加点击事件。*NavLink classmenu-item hrefpostsPosts/NavLink*NavLink classmenu-item hrefposts onclick(async () await Common.RenderPage(posts))Posts/NavLink 总算是搞定完成了分页查询文章列表的数据绑定今天就到这里吧未完待续...开源地址https://github.com/Meowv/Blog/tree/blog_tutorial

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何做seo整站优化天津做网站找哪家公司好

当需要在机器之间传输400GB文件的时候,你就会非常在意传输的速度了。默认情况下(约125MB带宽,网络延迟17ms,Intel E5-2430,本文后续讨论默认是指该环境),scp的速度约为40MB,传输400GB则需要170分钟&#xf…

博客论坛网站开发珠宝类网站建设可执行报告

final,finally,finalize的区别 在Java中,final、finally和finalize是三个不同的关键字,它们具有不同的作用和用法。 1、final: final是一个修饰符,可以用于修饰类、方法和变量。 用于修饰类时&#xff0…

未备案的网站可以百度推广吗wordpress58同城主题

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

海南省建设网站的公司投资 公司 网站模板

题目 产品数据表: Products 写一段 SQL来查找在 2019-08-16 时全部产品的价格,假设所有产品在修改前的价格都是 10 。 以 任意顺序 返回结果表。 查询结果格式如下例所示。 示例 1: 解题思路 1.题目要求我们查找在 2019-08-16 时全部产品的价格,假设所…

安卓app开发模板嘉峪关seo

代码 #include <stdio.h> #include <stdlib.h>/************************************************************************/ /*栈应用示例--数制转换要求&#xff1a;输入任意的正整数N(十进制)&#xff0c;分别输出该整数的二进制、八进制、十六进制的结果算法…

阳江网站建设wordpress 图片 网盘

早期的视频文件将多语言放在了左右声道&#xff0c;手机上播放时&#xff0c;很多播放器并没有切换声道的功能&#xff0c;所以需要做分离 导出单声道视频 ffmpeg -i 01.rmvb -c:v h264 -af pan"stereo| c0FR | c1FR" -acodec aac 01.mp4 这里的FR是右声道&#x…

网站制作目的建设购物网站的条件

外卖业务的快速发展对系统稳定性提出了更高的要求&#xff0c;每一次订单量大盘的异常波动&#xff0c;都需要做出及时的应对&#xff0c;以保证系统的整体稳定性。如何做出较为准确的波动预警&#xff0c;显得尤为重要。 从时间上看&#xff0c;外卖订单量时间序列有两个明显的…

php商城建站系统颍上做网站

Anaconda的作用 Anaconda的存在&#xff0c;使得一台电脑上可以存在多个不同版本的python和相应的包&#xff0c;这解决了多个项目运行时&#xff0c;所需要的python和包版本不同的问题。 本文内容 今天就来简单说说如何在pycharm使用Anaconda中的虚拟环境。 详细介绍 首先…

万网 网站建设方案书厦门网站建设公司闽icp

示例过滤器表达式本节介绍可通过 er_print -filters 命令以及在分析器过滤对话框中使用的过滤器表达式的示例。利用 er_print -filters 命令&#xff0c;过滤器表达式用单引号引起来&#xff0c;如下所示&#xff1a;er_print -filters FNAME("myfunc") SOME IN USTA…

专业网站快速排名优势河南做网站哪个平台好

一、选择题 1、人类信息技术发展的第一次飞跃发生在&#xff1a; A&#xff0e;古代社会 B&#xff0e;近代社会 C&#xff0e; 现代社会 D&#xff0e; 当代社会 2、计算机I/O设备指的是计算机系统的: A&#xff0e;控制设备; B&#xff0e;存储设备 C&#xff0e;输入/输出设…

上国外网站哪个dns快中国企业信息网官网

工业物联网平台解决方案 物联网&#xff0c;这个曾经似乎遥不可及的科技概念&#xff0c;如今已逐渐渗透到我们生活的方方面面。从智能家居到智能工业&#xff0c;从智能医疗到智能城市&#xff0c;物联网技术正在改变着我们的世界。 然而&#xff0c;正如任何一项技术一样&a…

甘肃省通信管理局网站今天的新闻报道

GRE和MGRE VPN---虚拟专用网络。指依靠ISP&#xff08;运营商&#xff09;或其他公有网络基础设施上构建的专用的安全数据通信网络。该网络是属于逻辑上的。​ 核心机制—隧道机制&#xff08;封装技术&#xff09; GRE—通用路由封装 ​ 三层隧道技术&#xff0c;并且是属于…

网站建立的步骤一件代发货源网1688

很多新手用户不知道阿里云服务器购买的流程&#xff0c;不清楚该如何选购云服务器配置才能既满足需求又不会掉“坑”里&#xff0c;为此笔者整理了2024年购买阿里云服务器的完整流程&#xff0c;分为通过云服务器ECS产品页下单购买和通过阿里云活动购买云服务器两种最常见的购买…

精准扶贫建设网站的目的招聘网站可以做劳务派遣吗

最大正方形 可以使用动态规划降低时间复杂度。用 dp(i,j) 表示以 (i,j)为右下角&#xff0c;且只包含 111 的正方形的边长最大值。能计算出所有 dp(i,j)的值&#xff0c;那么其中的最大值即为矩阵中只包含 111 的正方形的边长最大值&#xff0c;其平方即为最大正方形的面积。 …

免费网站站长推广网站排名外包

Java爬虫 爬取某招聘网站招聘信息 一、系统介绍二、功能展示1.需求爬取的网站内容2.实现流程2.1数据采集2.2页面解析2.3数据存储 三、其它1.其他系统实现 一、系统介绍 系统主要功能&#xff1a;本项目爬取的XX招聘网站 二、功能展示 1.需求爬取的网站内容 2.实现流程 爬虫…

宣武网站建设服务如何应对网络舆情

题目链接 这是一道很棒的二分题。 思路&#xff1a; 首先先思考什么情况下是可以无限的使用&#xff0c;即输出-1. 我们思考可知&#xff0c;如果每一秒内所有设备的用电量总和小于等于充电器每秒可以充的电&#xff0c;那么这一群设备就可以无限使用。 接下来分析不是无限使用…

好公司网站建设价格低网络新技术有哪些

6-使用通配符进行过滤 6.1-LIKE操作符 前面介绍的所有操作符都是通过已知的值进行过滤&#xff0c;或者检查某个范围的值。但是如果我们想要查找产品名字中含有bag的数据&#xff0c;就不能使用前面那种过滤情况。 利用通配符&#xff0c;可以创建比较特定数据的搜索模式。 …

个人网站备案费用装修平台网站有哪些

目录下有文件&#xff0c;并且权限也是够的&#xff0c;都是就是是没有。 解决方法&#xff1a; 进入/bin&#xff0c;执行命令 file bash 如上图&#xff0c;可以发现&#xff0c;bash是32-bit&#xff0c; 进入app所在目录&#xff0c;执行 file app 如上图&#xff0…

免费甜点网站模板下载网站开发怎么使用维语

题目&#xff1a; 蒜头君被暗黑军团包围在一座岛上&#xff0c;所有通往近卫军团的路都有暗黑军团把手。幸运的是&#xff0c;小岛上有一扇上古之神打造的封印之门&#xff0c;可以通往近卫军团&#xff0c;传闻至今没有人能解除封印。 封印之门上有一串文字&#xff0c;只包…

网站开发中所需要的绘图工具福州市工程造价信息网

什么段 我们在学习微机原理的时候就遇到过段&#xff0c;它代表在一个可执行文件中各种的类型信息存放的地方。   正文段&#xff1a;text用于存储指令&#xff1b;   数据段&#xff1a;data用于存储已初始化的全局变量&#xff1b;   bss段&#xff1a;用来存放程序中未…