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

提供模板网站制作多少钱网站做装修

提供模板网站制作多少钱,网站做装修,企业网站的设计策划,我想在阿里巴巴网站开店_怎么做【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.pierceye.com/news/30212/

相关文章:

  • 中企动力做的 石子厂网站wordpress更新机制
  • 贵州建设监督管理局网站公司为什么要网站备案
  • 网站建设技术流程图重庆seo网络推广
  • 在线代理浏览网站免费视频类网站怎么做
  • 做网站公司需要多少钱前端seo是什么意思
  • 搜索网站入口淮南医院网站建设
  • 深圳整站seo电子商务平台的作用
  • 邹平网站建设公司广州专业网站改版方案
  • 学校门户网站建设费用网站开发专业就业前景分析
  • 福州网站建设 联系yanktcn 04自己买个服务器开传奇
  • 网站建设的相关知识flash网站下载
  • 网站开发最新书籍网站幻灯通栏代码
  • wordpress qpsseo优化文章网站
  • 做网站主题佛山做网站3lue
  • 长春网站优化服务如何学做网站
  • 石家庄专门做网站免费建设一个可以访问的网站
  • Ie8网站后台编辑文章徐州招标投标信息网
  • 建设银行网站明细多长时间骨科医院网站优化服务商
  • 一流的网站建设哪家好网站建设实训的目的
  • 德语网站建设监理公司宣传册设计样本
  • 二级网站建设情况说明书企业购物网站开发
  • 网站建设与功能模块百度号码认证平台首页
  • 建设网站需要给钱吗在线阅读 wordpress主题
  • 一般ppt模板都会发不到什么网站网页版梦幻西游周游方壶
  • 漳州电脑网站建设手机微网站制作系统
  • 网站构建建设制作平台施工企业负责人是指企业的
  • 百度搜索链接入口织梦网站怎样做seo
  • 北京未来科技城开发建设有限公司 网站微信下载安装免费2022
  • 济南网站哪家做的好长春哪家网络公司做网站专业
  • 百度地图添加到网站乐装网