当前位置: 首页 > news >正文

官网查询网站智慧旅游网站建设方案ppt

官网查询网站,智慧旅游网站建设方案ppt,百度搜到自己的网站,宁德市有几个区几个县【Blazor】| 总结/Edison Zhou大家好#xff0c;我是Edison。最近在学习Blazor做全栈开发#xff0c;因此根据老习惯#xff0c;我会将我的学习过程记录下来#xff0c;一来体系化整理#xff0c;二来作为笔记供将来翻看。本篇#xff0c;我们通过一个简单的Todo示例应用…【Blazor】| 总结/Edison Zhou大家好我是Edison。最近在学习Blazor做全栈开发因此根据老习惯我会将我的学习过程记录下来一来体系化整理二来作为笔记供将来翻看。本篇我们通过一个简单的Todo示例应用来介绍如何实现基础的数据绑定和事件。添加Todo组件在Pages目录下新增一个Razor组件命名Todo.razorpage /todoh3Todo/h3code {}将Todo组件添加到导航栏我们知道在Shared目录下的NavMenu组件用于应用的导航因此我们需要将Todo组件加进去以便可以访问到div classNavMenuCssClass onclickToggleNavMenunav classflex-column...div classnav-item px-3NavLink classnav-link hreftodospan classoi oi-list-rich aria-hiddentrue/span Todo/NavLink/div/nav /div这时导航栏中也就有Todo了添加Model添加一个Models目录在此目录下新建一个TodoItem类namespace EDT.BlazorServer.App.Models {public class TodoItem{public string Id { get; set; }public string? Name { get; set; }public bool IsComplete { get; set; }public string? Remark { get; set; }} }为了模拟实现数据库访问的效果这里我们使用EF Core的内存数据库来模拟。首先添加对Microsoft.EntityFrameworkCore.InMemory的应用。其次在Models目录下创建一个TodoContext类using Microsoft.EntityFrameworkCore;namespace EDT.BlazorServer.App.Models {public class TodoContext : DbContext{public TodoContext(DbContextOptionsTodoContext options): base(options){}public DbSetTodoItem TodoItems { get; set; }} }然后在Program.cs中注入这个DbContext// Add database context builder.Services.AddDbContextTodoContext(opt opt.UseInMemoryDatabase(TodoList));添加种子数据为了方便演示我们提前准备一些SeedData创建一个SeedData的静态类namespace EDT.BlazorServer.App.Models {public static class SeedData{public static void Initialize(TodoContext db){var todos new TodoItem[]{new TodoItem { Id Guid.NewGuid().ToString(), Name Study Computer Network, IsCompletefalse, Remark Take a Test },new TodoItem { Id Guid.NewGuid().ToString(), Name Study Operation System, IsCompletefalse, Remark Take a Test },new TodoItem { Id Guid.NewGuid().ToString(), Name Study Data Structure, IsCompletefalse, Remark Take a Test },new TodoItem { Id Guid.NewGuid().ToString(), Name Walk the dog, IsCompletetrue, Remark string.Empty },new TodoItem { Id Guid.NewGuid().ToString(), Name Run 5km in 40mins, IsCompletetrue, Remark string.Empty },};db.TodoItems.AddRange(todos);db.SaveChanges();}} }然后在Program.cs中确保运行这个初始化操作添加Service假设我们所有的TodoItem都是通过Service来完成的不直接在Pages下的组件中来操作。首先创建一个接口ITodoItemServiceusing EDT.BlazorServer.App.Models;namespace EDT.BlazorServer.App.Service.Contracts {public interface ITodoItemService{TaskIListTodoItem GetTodoItemsAsync();TaskTodoItem GetTodoItemAsync(string id);TaskTodoItem AddTodoItemAsync(TodoItem todoItem);TaskTodoItem UpdateTodoItemAsync(TodoItem todoItem);TaskTodoItem DeleteTodoItemAsync(TodoItem todoItem);} }这时我们重新启动应用就可以看到Counter组件显示在主页上面了其次实现TodoItemServiceusing EDT.BlazorServer.App.Models; using EDT.BlazorServer.App.Service.Contracts; using Microsoft.EntityFrameworkCore;namespace EDT.BlazorServer.App.Service {public class TodoItemService : ITodoItemService{private readonly TodoContext _todoContext;public TodoItemService(TodoContext todoContext){_todoContext todoContext;}public async TaskTodoItem AddTodoItemAsync(TodoItem todoItem){todoItem.Id Guid.NewGuid().ToString();todoItem.IsComplete false;_todoContext.TodoItems.Add(todoItem);await _todoContext.SaveChangesAsync();return todoItem;}public async TaskTodoItem DeleteTodoItemAsync(TodoItem todoItem){_todoContext.TodoItems.Remove(todoItem);await _todoContext.SaveChangesAsync();return todoItem;}public async TaskTodoItem GetTodoItemAsync(string id){return await _todoContext.TodoItems.FirstOrDefaultAsync(t t.Id id);}public async TaskIListTodoItem GetTodoItemsAsync(){return await _todoContext.TodoItems.ToListAsync();}public async TaskTodoItem UpdateTodoItemAsync(TodoItem todoItem){_todoContext.TodoItems.Update(todoItem);await _todoContext.SaveChangesAsync();return todoItem;}} }完善Todo组件这里我们仿照FetchData组件添加一个表格 并 实现TodoItem的添加page /todo using EDT.BlazorServer.App.Models using EDT.BlazorServer.App.Service.Contracts inject ITodoItemService todoItemService;h3Todo (todos.Count(todo !todo.IsComplete))/h3if (todos null) {pemLoading.../em/p } else {table classtabletheadtrthId/ththName/ththIsComplete/ththRemark/th/tr/theadtbodyforeach (var todo in todos){trtdtodo.Id.ToString()/tdtdtodo.Name/tdtdinput typecheckbox bindtodo.IsComplete //tdtdtodo.Remark/td/tr}/tbody/table }input placeholderTodo Item Name (Necessary) bindnewTodoItemName / input placeholderTodo Item Remark (Optioinal) bindnewTodoItemRemark / button onclickAddTodoAdd todo/buttoncode {private IListTodoItem todos;private string? newTodoItemName;private string? newTodoItemRemark;protected override async Task OnInitializedAsync(){todos await todoItemService.GetTodoItemsAsync();}private async void AddTodo(){if (string.IsNullOrWhiteSpace(newTodoItemName))return;var todoItem new TodoItem { Name newTodoItemName, Remark newTodoItemRemark };await todoItemService.AddTodoItemAsync(todoItem);// Clear TextboxesnewTodoItemName newTodoItemRemark string.Empty;// Refresh Todostodos await todoItemService.GetTodoItemsAsync();} }需要注意的是1通过injec指令进行Service的注入和常见的构造函数注入不同。2通过重写OnInitializeAsync事件进行数据的初始化即从数据库中读取TodoItem的列表。这部分属于Blazor组件的生命周期范畴这里不过多纠结即可。唯一需要了解的是OnInitialized 和 OnInitializeAsync 事件是在做组件的初始化它发生在参数注入完成之后这里的ITodoItemService就是注入的参数。3除了foreachBlazor还包含其他循环指令例如 for、while 和 do while。这些指令返回重复的标记块。它们的工作方式与等效的 C# for、while 和 do...while 循环类似。到此最终的项目结构如下图所示运行效果运行起来的效果如下图所示1加载Todo列表2添加新的Todo事项小结本篇我们实现了一个Todo应用。下一篇我们学习一下在Blazor中数据是如何被共享的。参考资料Microsoft Docs《使用Blazor生成Web应用》年终总结Edison的2021年终总结数字化转型我在传统企业做数字化转型C#刷题C#刷剑指Offer算法题系列文章目录.NET面试.NET开发面试知识体系.NET大会2020年中国.NET开发者大会PDF资料
http://www.huolong8.cn/news/246879/

相关文章:

  • 邳州做网站旅行志 wordpress
  • 江苏弘盛建设工程集团有限公司网站合肥百度seo排名
  • 重庆网络技术有限公司WordPress中文seo
  • 网站建设丶金手指花总13优秀网站 要素
  • dw做的网站怎么上传wordpress 增加表
  • 夏天做哪个网站致富茶叶包装设计
  • 做网站费用 优帮云动漫做视频在线观看网站
  • 中国建设网官方网站地址做微信表情的微信官方网站
  • 云南省建设厅网站大江网站建设
  • 江苏弘盛建设工程集团有限公司网站接广告的平台推荐
  • 19年做哪个网站致富挂机宝做网站可以吗
  • 网站注册域名 免费番禺人才网参考资料答案
  • 网站建设服务费用网页版梦幻西游决战华山攻略
  • 网站头图设计网上注册公司流程及材料
  • 南县网站制作做营销型网站服务
  • 德州加盟网站建设免费logo在线制作工具
  • 门户网站手机版wordpress文章数据包
  • 做网站排名有用吗郑州家居网站建设服务公司
  • 网站描述代码怎么写购物网站 建设
  • app开发网站建设哪家好设计网站页面要怎么切图
  • 电子商务网站建设 考卷网站域名备案时间查询
  • 中国建设银行青岛分行网站莱芜 做网站 公司
  • 网站建设 重庆做一个卖货的app要多少钱
  • 网站建设 wix高仿酒网站怎么做
  • 广德县建设协会网站做网站阿里云买哪个服务器好点
  • 能解析国外网站的dns上海做网站的企业
  • 部门门户网站建设请示阿克苏交通建设局网站
  • 北京国互网网站建设电话南山网络科技有限公司
  • 网站排名西安文创产品设计理念
  • 增城门户网站中国宁波网