C# Blazor 学习笔记(5):blazor文件夹组件引入

前言

为了更好的组件化管理整个文件,我选择使用分文件夹对项目组件进行分类。

文件夹组件引入

文件夹分类

  • Shared:Layout布局空间放置地方,由于默认创建,动也不好动,我就不动这个名称了,原本想改成Layout的
  • Pages:业务页面
  • Components:自定义组件文件

文件引入

我创建了B_Col和B_Row两个组件。因为我怕我的命名和别的组件库命名出现冲突,我就加了了B_前缀
在这里插入图片描述
然后我发现不能直接引入
在这里插入图片描述

解决方法

在_import.razor文件夹中
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Blazor WebAssembly或Blazor Server来展示日志。下面是一些实现方式: 1. 使用Blazor WebAssembly 您可以将日志作为对象注入到您的服务中,然后将其绑定到UI组件以显示。以下是一个示例: 在Startup.cs文件中,注入日志服务: ```csharp services.AddSingleton<ILoggerService, LoggerService>(); ``` 创建LoggerService类,该类包含记录日志的方法: ```csharp public class LoggerService : ILoggerService { private List<LogEntry> logs = new List<LogEntry>(); public void Log(string message) { logs.Add(new LogEntry { Message = message, Timestamp = DateTime.Now }); } public List<LogEntry> GetLogs() { return logs; } } public class LogEntry { public string Message { get; set; } public DateTime Timestamp { get; set; } } ``` 在Blazor组件中,绑定日志数据: ```csharp @page "/log" <h3>Log</h3> <ul> @foreach (var log in logs) { <li>@log.Timestamp.ToString() - @log.Message</li> } </ul> @code { private List<LogEntry> logs; protected override void OnInitialized() { logs = loggerService.GetLogs(); } [Inject] private ILoggerService loggerService { get; set; } } ``` 2. 使用Blazor Server 在Blazor Server中,您可以使用SignalR连接到服务器,然后通过SignalR获取日志数据。以下是一个示例: 在Startup.cs文件中,注入日志服务: ```csharp services.AddSingleton<ILoggerService, LoggerService>(); ``` 创建LoggerService类,该类包含记录日志的方法: ```csharp public class LoggerService : ILoggerService { private List<LogEntry> logs = new List<LogEntry>(); public void Log(string message) { logs.Add(new LogEntry { Message = message, Timestamp = DateTime.Now }); } public List<LogEntry> GetLogs() { return logs; } } public class LogEntry { public string Message { get; set; } public DateTime Timestamp { get; set; } } ``` 在Blazor组件中,使用SignalR获取日志数据: ```csharp @page "/log" <h3>Log</h3> <ul> @foreach (var log in logs) { <li>@log.Timestamp.ToString() - @log.Message</li> } </ul> @code { private List<LogEntry> logs; protected override async Task OnInitializedAsync() { logs = await hubConnection.InvokeAsync<List<LogEntry>>("GetLogs"); } [Inject] private HubConnection hubConnection { get; set; } } ``` 在服务端创建SignalR Hub,该Hub将日志数据发送到客户端: ```csharp public class LogHub : Hub { private readonly ILoggerService loggerService; public LogHub(ILoggerService loggerService) { this.loggerService = loggerService; } public async Task<List<LogEntry>> GetLogs() { return loggerService.GetLogs(); } } ``` 在Startup.cs文件中,配置SignalR: ```csharp services.AddSignalR(); app.UseEndpoints(endpoints => { endpoints.MapHub<LogHub>("/loghub"); }); ``` 请注意,这只是展示日志的基本示例,您可能需要根据您的实际需求进行适当的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值