在这个简短的系列文章中,我将介绍如何使用Serilog的ASP.NET Core请求日志记录功能。...在第一篇文章中,我将讲述如何将Serilog的RequestLoggingMiddleware添加到您的应用程序,以及它提供的好处。在后续文章中,我将描述如何进一步自定义行为。...原生请求日志 在本节中,首先让我们创建一个标准的ASP.NET Core 3.0的Razor pages应用,当然你也可以直接使用dotnet new webapp命令来进行创建。...您可以通过多种方式执行此操作,但是建议的方法是在Program.Main 执行其他任何操作之前先配置记录器。这与ASP.NET Core通常使用的方法背道而驰,但建议用于Serilog。...例如,不再记录终结点名称和Razor页面处理程序。在后续文章中,我将展示如何将它们添加到摘要日志中。
然后,可以通过引用Razor类库项目或通过包引用将这些静态资产包含在ASP.NET Core应用程序中。...要在Razor类库中包含静态资源,请将一个wwwroot文件夹添加到Razor类库中,并在该文件夹中包含所有必需的文件。...静态资源保留在其原始文件夹中,Razor类库中静态资产内容的任何更改都会反映在应用程序中而不进行重建。...要尝试使用Razor类库中的静态资源:创建默认的ASP.NET Core Web App。dotnet new webapp -o WebApp1创建一个Razor类库并从Web应用程序引用它。...默认用户主体是从证书属性构造的,其中包含一个允许您补充或替换主体的事件。有关如何为证书身份验证配置公共主机的所有选项和说明,请参阅文档。
然后在配置新项目的过程中,选择我们需要的.NET 版本,这里我们选择使用.NET 6的版本,然后在其中创建项目的位置,然后单击“ 创建”按钮。...; } } ``` Razor Pages 使用公共属性将数据公开给显示模板。 显示模板中提供了公共属性Message。...除了这些将数据传送到显示模板的公共属性之外,PageModel类还包括OnGet()和OnPost()之类的方法。...在某些方面, Razor Pages 类似于经典的ASP.NET Webforms框架。在ASP.NET Webforms中,我们有一个ASPX页和一个代码隐藏类。...在一些ASP.NET Core Web应用程序中,也可以将两种模式(即ASP.NET Core MVC和Razor Pages)组合在一起。
然后,可以通过引用Razor类库项目或通过包引用将这些静态资产包含在ASP.NET Core应用程序中。...要在Razor类库中包含静态资源,请将一个wwwroot文件夹添加到Razor类库中,并在该文件夹中包含所有必需的文件。...静态资源保留在其原始文件夹中,Razor类库中静态资产内容的任何更改都会反映在应用程序中而不进行重建。...要尝试使用Razor类库中的静态资源: 创建默认的ASP.NET Core Web App。...默认用户主体是从证书属性构造的,其中包含一个允许您补充或替换主体的事件。有关如何为证书身份验证配置公共主机的所有选项和说明,请参阅文档。
目录 关于组件 组件类 静态资产 路由与路由参数 组件参数 请勿创建会写入其自己的组参数属性的组件 子内容 属性展开 任意参数 捕获对组件的引用 在外部调用组件方法以更新状态 使用 @ 键控制是否保留元素和组件...组件:项目 Blazor 中,使用 .razor 结尾的文件,称为组件;而 Blazor 中的组件,正式名称是 razor 组件; Blazor 组件是 razor 过渡而来的,使用 razor 的基本语法特性...`.razor` ,以 `@code{}` 包含 C# 代码,这部分代码除了组件间可以使用,程序中也可以正常使用,因为属于类的一部分。...静态资产 默认静态资源文件位置在项目的 wwwroot 目录,前端(.razor、.cshtml)等,默认寻址时,使用绝对路径 / 即可访问资源。...被多个组件使用,不同组件要呈现不一样的内容; 要根据父组件的配置,显示子组件; 组件 A 要求使用到的组件 B,显示其传递的内容; 简单来说,就是将页面内容作为复杂类型传递给另一个组件,要求这个组件显示出来
组件是内置到 .NET 程序集的 .NET C# 类,它们用于: 定义灵活的 UI 呈现逻辑。 处理用户事件。 可以嵌套和重用。 可作为 Razor 类库或 NuGet 包共享和分发。...组件类通常以 Razor 标记页(文件扩展名为 .razor)的形式编写。Blazor 中的组件有时被称为 Razor 组件。...借助 Razor,可使用 Visual Studio 中的 IntelliSense 编程支持在同一文件中的 HTML 标记与 C# 之间切换。...Razor Pages 和 MVC 也使用 Razor。 与基于请求/响应模型生成的 Razor Pages 和 MVC 不同,组件专门用于处理客户端 UI 逻辑和构成。...上面的代码可以看到,我们请求服务端的Api地址。 ? 服务端也添加对应的Controller,函数中也对应的Api的地址。 ? 实现方式在Shared的类中。 03 服务器数据库配置 ?
下面是该预览版的更新列表: Razor组件改进: 单项目模板 新的Razer扩展 Endpoint路由集成 预呈现 Razor类库中的Razor组件 改进事件处理 Forms & validation...要在应用程序中启用Razor组件支持,需要在路由配置中使用MapComponentHub。...Razor组件在HTML中是完全呈现的。 Razor类库中的Razor组件 现在可以将Razor组件添加到Razor类库中,并使用Razor组件从ASP.NET核心项目引用它们。...另外,Razor类库还不支持静态资源。如果要在库中创建可与Blazor和Razor组件应用程序共享的组件,仍然需要使用Blazor类库。这写问题会在未来的更新中解决。...在本节中,我们将展示如何创建一个新的Angular或React模板,该模板允许我们对用户进行身份验证并访问受保护的API资源。
关键文件和目录结构 按照asp.net core WEB应用程序向导,创建一个工程之后 你会发现如下几个目录和文件 wwwroot:放置网站的静态文件的目录 Pages:放置razor页面的目录 appsettings.json...:是应用的配置文件 bower.json:静态资源包管理的配置文件 Program.cs:这个程序负责承载ASP.NET Core应用 Startup.cs:初始化service的配置,初始化请求管道...Razor页面的PageModel类 好,我们现在看看怎么通过数据库上下文把数据从数据库中拿出来 在Pages目录下,创建一个Razor页面 在相应的cshtml.cs文件中,撰写如下代码: using...cshtml.cs文件中的IndexModel类,在这个Razor Page中有效 关于ViewData @page @model RazorPagesMovie.Pages.Movies.IndexModel...@{ ViewData["Title"] = "Index"; } 你可以在Razor Page页面中设置ViewData的键值,在_Layout.cshtml模版页面中使用你设置的ViewData
Razor 是一个用于将基于服务器的代码嵌入到网页中的标记语法。 Razor语法由 Razor 标记、c # 和 HTML 组成。...@functions @functions 指令允许将 C# 成员(字段、属性和方法)添加到生成的类中: @functions { // C# members (fields, properties...该指令将 RazorPage 中的 T 指定为生成的类,视图便派生自该类。 如果未指定 @model 指令,则 Model 属性的类型为 dynamic。...指令: 在 cshtml 文件中,指示该文件是一个 Razor 页面。 有关详细信息,请参阅自定义路由和 ASP.NET Core 中的 Razor Pages 介绍。...模板化 Razor 委托 Razor 模板允许使用以下格式定义 UI 代码段: @... 下面的示例演示如何将模板化 Razor 委托指定为 Func 。
新增功能: Razor Pages ASP.NET Core 元包(注:即Microsoft.AspNetCore.All ,我喜欢称作全家桶,作用就是一把梭给你全部引用了相关的包,不用你发现没有的时候自己去找...ASP.NET Core 中默认不再使用 WebHostBuilder ,而是使用 HostBuilder(可以更好地将 ASP.NET Core 应用与非 Web 特定的其他服务器方案集成) Startup...减少跨框架的分配,包括中间件方案和路由。 降低了 WebSocket 连接的内存使用量。 减少 HTTPS 连接的内存使用量并提高了其吞吐量。 新的优化和完全异步 JSON 序列化程序。...使用端点路由时的授权 Linux 上的 Kerberos 身份验证和 LDAP 的基于角色的访问控制 对 ASP.NET Core 项目运行 dotnet watch 将启动默认浏览器...,并在对代码进行更改时自动刷新浏览器 控制台记录器格式化程序 JSON Console Logger 性能改进 显著减少了 HTTP/2 代码路径中的分配。
Blazor 框架支持的场景: 可重用的 UI 组件(Razor 组件) 客户端路由 组件布局 对依赖注入的支持 表单与验证 使用 Razor 类库构建组件库 JavaScript 互操作 有关更多信息...组件是普通的 .NET 类,用于定义 UI 呈现逻辑和客户端事件处理程序。您可以创建没有 JavaScript 的富交互式 Web 应用程序。...Blazor 中的组件通常使用 Razor 语法编写,它是 HTML 和 C# 的自然融合。...Razor 组件与 Razor Pages(页面)和 MVC 视图 (view) 相似,因为它们都使用 Razor。与基于“请求-响应”模型的页面与视图不同,组件专门用于处理 UI 合成。...现在,脚本和相关的静态资产被作为本地文件引用,而不再使用 CDN。
例如,如果您创建一个使用Razor Pages(dotnet new webapp)的新Web应用程序,您将在Startup.Configure中看到如下的中间件配置: public void Configure...Web API的异常处理 Web API模板(dotnet new webapi)中的默认异常处理类似于Razor Pages使用的异常处理,但有一个重要的区别: public void Configure...这是从ASP.NET Core 3.x(在某种程度上在2.2版中)的Web API返回错误消息的普遍支持的方法。 我们将从在静态帮助器类中定义UseCustomErrors函数开始。...该帮助类将一个生成响应的中间件添加到IApplicationBuilder方法扩展中。在开发环境中,它最终会调用WriteResponse方法,并且设置includeDetails: true。...总结 在这篇文章中,我描述了Razor Pages和Web API的默认异常处理中间件方法。
中MVC 和Web API 直接或间接继承同一个基类 ControllerBase,提供可使用的API也一致化 b) 比如:旧ASP.NET时代,写全局filter需要针对MVC 和Web API 分别编写代码...Core 自定义配置源从远程API读取配置(ConfigurationProvider) 迈向现代化的 .Net 配置指北(配置到类自动映射) 路由、模型绑定 ASP.NET Core WebAPI中...ASP.NET Core 中如何注入同一个接口的多个实现 案例1:使用nlog时,想根据需要使用不同的配置文件Nlog.config 写日志时,就可以使用文章中介绍的 Factory 命名注入方案来实现...MVC 静态文件目录配置与访问授权 新的 Razor 机制 ASP.NET Core Razor SDK ASP.NET Core 的 Razor 语法参考 ASP.NET Core 中的 Razor...ASP.NET Core Razor 配置:预编译,动态编译,混合编译 WebForm & MVC & Razor Pages [译]ASP.NET:WebForms vs MVC ASP.NET Core
从最初的构思到实践,先后涉足了多种开发技术,包括 [MVC](ASP.NET Core MVC 概述 | Microsoft Learn[1])、[Razor Pages](ASP.NET Core 中的...CodeWF:Razor类库,主要实现网站文档、博文页面封装,目前有工具还未上线,后面会按此库架构另开一个库写在线工具; WebSite:网站的入口工程,整合CodeWF和AntBlazor工程,当然也包括部分页面封装...在静态 SSR 模式下,前端的 HTML 控件不能像在 Blazor Server 中那样使用 C# 事件方法映射,不过它仍然可以借助 JS 函数来实现交互,例如 button 的 click 事件可以映射...值得庆幸的是,C# 实体绑定、服务注入等重要功能在静态 SSR 中依然可以正常使用。...view=aspnetcore-9.0 [2] Razor Pages: https://learn.microsoft.com/zh-cn/aspnet/core/razor-pages/?
在上一篇我们学习了Blazor和JavaScript的互操作性,这一篇我们了解下如何创建和使用Razor类库。 什么是Razor类库?...Razor类库也是一种.NET项目类型,它包含 Razor 组件、页面、HTML、级联样式表 (CSS) 文件、JavaScript、图像和其他可由 Blazor 应用程序引用的静态 Web 内容。...确认”按钮,具有可配置的标签和可管理的单击事件 可以通过 ChildContent 参数设置组件的内部内容 可以使用 Show 参数控制对话框的显示状态 为了好看点,添加以下样式内容到...在Blazor应用中使用Razor类库 首先,我们通过添加引用的方式,将刚刚创建的Razor类库引用到我们的项目中。 dotnet add reference .....类库,然后通过一个DEMO了解了如何创建Razor类库 和 在Blazor项目中使用Razor类库。
提炼自企业级中后台产品的交互语言和视觉风格。 ? 开箱即用的高质量 Razor 组件,可在多种托管方式共享。 ?...支持基于 WebAssembly 的客户端和基于 SignalR 的服务端 UI 事件交互。 ? 支持渐进式 Web 应用(PWA) ? 使用 C# 构建,多范式静态语言带来高效的开发体验。...⚙️ 基于 .NET Standard 2.1,可直接引用丰富的 .NET 类库。 ? 可与已有的 ASP.NET Core MVC、Razor Pages 项目无缝集成。...从ant-design-blazor README 摘点内容撑一撑篇幅(手动滑稽) 三.使用 直接新建一个 Blazor WebAssembly 项目,或者使用前两篇文章中的 Demo。...在 _Imports.razor 中加入命名空间 @using AntDesign 在 Index.razor中添加: Hello World!
后来才发现这是ASP.NET Core框架新推出的Razor Pages技术。 什么是Razor Pages “Razor Pages 使编码更加简单更加富有生产力”这是微软说的==!。...下面使用一个标准的CRUD示例来演示Razor Pages的开发,并且简单的探索一下它是如何工作的。...然后新建一个实现类,并且使用静态变量保存数据,模拟数据持久化。...中的Action。...只是Razor Pages毕竟是服务端渲染,不能进行实时双向绑定而已。最后,说实话通过简单的体验,Razor Pages开发模式跟MVC模式相比并未有什么特殊的优点,不知道后续发展会如何。
先聊聊Razor Pages 上个版本网站前台使用的Razor Pages开发,当时选择这个技术栈主要是为了搜索引擎的SEO优化考虑。...关于MVC和Razor Pages哪个更优, 我们这里只说说Razor Pages相对的优势。 首先,Razor Pages相对于MVC来说,更加简单和直观。...由于Razor Pages将视图和处理逻辑封装在同一个页面中,开发人员可以更容易地理解和维护代码。...其次,Razor Pages在SEO(搜索引擎优化)方面具有一定的优势。由于Razor Pages将视图和处理逻辑封装在同一个页面中,搜索引擎可以更容易地理解和索引页面的内容。...Blazor的交互便利:带来几个在线工具 对于页面的事件处理,使用Blazor就方便了,下面是昨晚加的4个小工具: 4.1.
创建ASP.NET Core Web应用程序 如果您使用的是VS2017请看 VS2017创建ASP.NET Core Web程序(三) 在这个视频中我们将讨论 可用的不同项目模板及其功能 预制的项目模板有什么不同...我们没有RESTful API不需要的所有JavaScript,CSS和布局文件。 ? Web应用程序:此模板使用新的用于构建Web应用程序的Razor Pages框架。...我们将在即将发布的视频中详细讨论Razor Pages。 Razor类库(RCL):顾名思义,我们使用此模板创建可复用的Razor类库项目。...该项目包含所有可复用的用户界面部分,如数据模型,页面模型,控制器,页面,Razor视图和View组件。然后,可以在多个应用程序中复用此Razor类库(RCL)项目。...在下一篇文章中,我们将探索和理解ASP.NET Core 项目文件。 摘要 在本文中,我尝试解释如何使用从头开始的创建项目,以及不同类型的模板的区别。我希望这篇文章可以帮助您满足您的需求。
在Blazor中,.razor文件中的C#代码经常使用基于Razor语法的@符号来嵌入到HTML代码中,而.cshtml文件中的C#代码则使用@符号来标识Razor代码块,但不会嵌入到HTML标记中。...2 razor引擎解析razor/cshtml的过程 2.1 原理概述 Razor引擎的主要作用之一就是将包含HTML和C#代码的Razor标记页文件(扩展名为.razor)编译成C#类代码。...Razor引擎的编译过程是将Razor标记页文件中的HTML和C#代码转换成可执行的C#类代码,从而实现了页面逻辑与呈现的分离,同时保留了编写页面逻辑的便利性。...Razor文件中的动态内容和事件处理逻辑会被转换成相应的C#代码,用于在运行时执行和处理。...3.总结: Razor引擎的编译过程是将Razor标记页文件中的HTML和C#代码转换成可执行的C#类代码,从而实现了页面逻辑与呈现的分离,同时保留了编写页面逻辑的便利性。
领取专属 10元无门槛券
手把手带您无忧上云