代码:
using Microsoft.AspNetCore.Razor.TagHelpers; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace NetCoreTestMVC2.Commons { //public class EmailTagHelper : TagHelper //{ // 示例1:<email mail-to="xxx@qq.com"></email> // public string MailTo { get; set; } // public override void Process(TagHelperContext context, TagHelperOutput output) // { // output.TagName = "a"; // output.Attributes.SetAttribute("href",$"mailto:{MailTo}"); // output.Content.SetContent(MailTo); // } // 示例2:<email>xxx@qq.com</email> // public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) // { // output.TagName = "a"; // var content = await output.GetChildContentAsync(); // var target = content.GetContent(); // output.Attributes.SetAttribute("href", $"mailto:{target}"); // output.Content.SetContent(target); // } //} //[HtmlTargetElement(Attributes = "bold")] //[HtmlTargetElement("bold")] //public class BoldTagHelper : TagHelper //{ // //示例:<p bold>xxx</p> 或者 <bold>xxx</bold> // public override void Process(TagHelperContext context, TagHelperOutput output) // { // output.Attributes.RemoveAll("bold"); // output.PreContent.SetHtmlContent("<strong>"); // output.PostContent.SetHtmlContent("</strong>"); // } //} /// <summary> /// 条件 TagHelper /// <div condition="_SignInManager.IsSignIn(User)">xxx</div> /// 如果 condition 中返回的值是 false 则不会显示 div /// </summary> //public class ConditionTagHelper : TagHelper //{ // public bool Condition { get; set; } // public override void Process(TagHelperContext context, TagHelperOutput output) // { // if (!Condition) // { // output.SuppressOutput(); // } // } //} //前端使用TagHelper前缀,@tagHelperPrefix "tagpre:" //TagHelper 前缀,使用在标签前加上<tagpre:a>xxx</tagpre:a> }
nuget使用日志Nuget安装:Serilog/Serilog.AspNetCore/Serilog.Sinks.File/Serilog.Sinks.Console
配置:
public class Program { public static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.Console() .WriteTo.File(Path.Combine("logs", "log.txt"), rollingInterval: RollingInterval.Day) .CreateLogger() ; CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseSerilog() .UseStartup<Startup>(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探