ASP.NET Core 路由规则,自定义特性路由 ,IActionConstraint 路由约束 总结 mvc

资料

资料

路由服务

路由服务是在 Program.cs 中使用 builder.Services.AddRouting()注册的,
只是默认在 builder 之前已经注册过了,无需我们再次注册。
AddRouting()方法必须在 UseRouting()方法之前运行,它是路由的基础服务。

在这里插入图片描述

MapControllerRoute 用于常规路由

在这里插入图片描述

MapDefautControllerRoute 用于常规路由 这是上面的内容,但它简写了我上面显示的默认模式的配置。

MapControllers 属性路由 【特性路由】 最常用于 restfull api 或者webapi,

在这里插入图片描述

UseMvc 不能跟终结点路由一起使用 支持多路由 支持特性路由

//不启用终结点
builder.services.AddMvc(options => options.EnableEndpointRouting = false);

在这里插入图片描述

app.UseMvc(routes =>
{
routes.MapRoute(
name: “default”,
template: “{controller=Home}/{action=Index}/{id?}”);
routes.MapRoute(
name: “defaultXX”,
template: “Test/{controller=xxx}/{action=Index}/{id?}”);
});

UseMvcWithDedaultRoute 是app.UseMvc 的默认值 简写

使用名为“default”的默认路由和以下模板将 MVC 添加到 IApplicationBuilder
请求执行管道:“{controller=Home}/{action=Index}/{id?}”。
在这里插入图片描述

UseRouting UseEndpoints 终结点路由 支持多路由

在这里插入图片描述
UseRouting() 方法用于配置请求路由。

UseEndpoints() 方法用于定义请求的服务端点。
在这里插入图片描述
》》》配置终结点委托
MapGet
MapPost
MapPut
MapDelete
MapControllerRoute
MapHealthChecks
其他类似“MapXXX”的方法

总结

路由一共2种 UseEndpoints 和 UseMvc 不能同时使用
资料

自定义特性路由

在这里插入图片描述

比如HttpGet 继承 HttpMethodAttribute
在这里插入图片描述

public class MyApiControllerAttribute:Attribute,IRouteTemplateProvider
{public string Template => "api/[controller]";public int?Order {get;set}public string Name {get;set;}
}
IActionConstraint 路由约束

在这里插入图片描述

实现IActionConstraint最简单的方法是创建派生自 System.Attribute 的类,并将其置于操作和控制器上。
 MVC 将自动发现任何应用属性IActionConstraint的操作和控制器

//定义ActionConstraint属性约束
public class CountrySpecificAttribute : Attribute, IActionConstraint{private readonly string _countryCode;public CountrySpecificAttribute(string countryCode){_countryCode = countryCode;}//  越小 优先级越高public int Order{get{return 0;}}public bool Accept(ActionConstraintContext context){return string.Equals(context.RouteContext.RouteData.Values["languagecode"].ToString(),_countryCode,StringComparison.OrdinalIgnoreCase);}}
      //应用路由的action约束,并且路由中id值为en-US[CountrySpecific("en-US")]public IActionResult Privacy(string countryCode){return View();}
//在浏览器测试时:如果输入http://localhost:30081/home/Privacy/zh-cn,则网页显示404。
//如果输入http://localhost:30081/home/Privacy/en-US 则符合约束,网页显示正常。
//路由是  
app.UseMvc(routes =>
{routes.MapRoute(name: "default",template: "{controller=Home}/{action=Index}/{languagecode}");        
});

微软资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/5293.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

二分法查找(c基础)

二分法查找一个有序数组中是否有某个数 大家看了可以自己写一下 &#xff08; 要用知识点 数组 while循环 scanf 函数 printf函数 &#xff09; //用二分法查找 #include<stdio.h> int main() {char arr[] { 1,2,3,4,5,6,7,8,9,10 };int sz sizeof(arr) / size…

20241106软考架构-------软考案例12答案

每日打卡题案例12答案 【2015年真题】 难度&#xff1a;一般 阅读以下关于应用系统数据架构的说明&#xff0c;回答下列问题。&#xff08;25分&#xff09; 【说明】 某软件公司拟开发一套贸易综合管理系统&#xff0c;包括客户关系管理子系统和商品信息管理子系统两部分。客…

wps的Excel中使用条件格式

本例演示怎样根据单元格的值设置单元格的格式&#xff0c;重点介绍多条件的混合使用 例&#xff1a;请将列2中值为A或A的单元格设置为绿色 多条件&#xff0c;即是与、或、非的组合&#xff0c;wps里有对应的函数可用

[mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关

1DML数据操作语言,增加删除改数据 插入数据INSERT 插入添加数据,两种方法 方式1:VALUES添加数据 #准备工作 USE atguigudb; CREATE TABLE IF NOT EXISTS emp1( id INT, name VARCHAR(15), hire_data DATE, salary DOUBLE(10,2)); SELECT * FROM emp1 INSERT INTO em…

GIS地形图配准实验

地形图配准&#xff1a;指将地形图或其他地理数据&#xff08;如航拍图像、卫星图像等&#xff09;与地理坐标系统对齐的过程&#xff0c;使得这些图像或图形能够在地理空间中正确地定位。配准是将非地理坐标的地图或图像转换为地理坐标的一个重要步骤 分析原地形图 地图左上…

Python酷库之旅-第三方库Pandas(198)

目录 一、用法精讲 921、pandas.Index.get_level_values方法 921-1、语法 921-2、参数 921-3、功能 921-4、返回值 921-5、说明 921-6、用法 921-6-1、数据准备 921-6-2、代码示例 921-6-3、结果输出 922、pandas.Index.get_loc方法 922-1、语法 922-2、参数 92…

机器学习(四)——神经网络(神经元、感知机、BP神经网络、梯度下降、多层神经网络、Python源码)

目录 关于1 神经元模型2 感知机与多层网络3 误差逆传播算法4 全局最小与局部极小5 其他常见神经网络6 深度学习X 案例代码X.1 源码X.2 数据集&#xff08;加州房价数据&#xff09;X.3 模型效果 关于 本文是基于西瓜书&#xff08;第五章&#xff09;的学习记录。内容包括神经…

Diving into the STM32 HAL-----Clock Tree笔记

几乎每个数字电路都需要一种方法来同步其内部电路或与其他电路同步。时钟是一种产生周期性信号的设备&#xff0c;它是数字电子学中最普遍的心跳源形式。 然而&#xff0c;相同的时钟信号不能用于馈送现代微控制器&#xff08;如 STM32 微控制器&#xff09;提供的所有组件和外…

每日科技资讯:2024年11月06日【龙】农历十月初六 ---文末送书

目录 1.OpenAI因算力瓶颈暂缓GPT-5发布 合作芯片开发寻求突破2.现在&#xff0c;&#x1d54f; 允许被你屏蔽的人继续查看你的帖子3.硬刚Intel与AMD&#xff01;NVIDIA明年推出PC芯片4.苹果停止签署 iOS 18.0.1&#xff0c;不再允许从 18.1 降级5.Nvidia 加入道琼斯指数成份股 …

高效率的快捷回复软件 —— 客服宝聊天助手

在电商行业日益繁荣的今天&#xff0c;高效的客户沟通对于企业的成功至关重要。无论是电商平台、居家客服还是其他各类客服行业&#xff0c;都需要一款强大的工具来提升工作效率。今天&#xff0c;我们就来介绍一款高效率的快捷回复软件 —— 客服宝聊天助手。 一、跨平台跨店铺…

RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式)

RabbitMQ如何保证发送的消息可靠&#xff08;RabbitMQ的Confirm模式和2.Return模式&#xff09; 1、RabbitMQ消息Confirm模式&#xff08;保证从生产者到交换机的消息可靠&#xff09;1.1、Confirm模式简介1.2、具体代码实现1.2.1、application.yml 开启确认模式1.2.2、生产者方…

讲讲分布式事务?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲分布式事务&#xff1f;】面试题。希望对大家有帮助&#xff1b; 讲讲分布式事务&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在现代的分布式系统中&#xff0c;数据往往分布在不同的服务器、数据中…

【职场日常】软件测试平台如何搭建?

作为一名软件测试工程师&#xff0c;搭建测试环境是我们日常工作的一部分。搭建一个适合各类测试的测试环境至关重要&#xff0c;可以在后期的测试过程中为我们提供便利。接下来我将向大家介绍如何搭建测试环境&#xff0c;以及需要注意的事项。 首先&#xff0c;我们需要确保…

Spring Boot关闭时,如何确保内存里面的mq消息被消费完?

1.背景 之前写一篇文章Spring Boot集成disruptor快速入门demo&#xff0c;有网友留言如下图&#xff1a; 针对网友的留言&#xff0c;那么我们如何解决这个问题呢 Spring-Boot应用停机时&#xff0c;如何保证其内存消息都处理完成&#xff1f; 2.解决方法 方法其实挺简单的&…

3D一览通更新三大功能更新,进一步提升协同效率

大腾智能3D一览通新功能正式发布&#xff01;本次新版本在通用功能的基础上&#xff0c;新增并优化了3大功能点&#xff0c;为用户带来更加流畅、高效的使用体验&#xff0c;提升设计协同效率。 功能点1&#xff1a;在结构树中管理测量标注对象 在新版本中&#xff0c;我们将…

基于DCT的数字水印算法

摘要 数字水印技术近年来得到了较大的发展&#xff0c;基于变换域的水印技术是目前研究的热点。数字水印是利用数字作品中普遍存在的冗余数据和随机性&#xff0c;把标识版权的水印信息嵌入到数字作品中&#xff0c;从而可以起到保护数字作品的版权或其完整性的一种技术。 一个…

JAVA——反射

目录 1.概述 2.Class类 a.实例化对象 1.利用Class类的静态方法 2. 利用类名 3.利用类的成员方法 b.常见方法 1.获取所有公共构造方法对象的数组 2.获取所有构造方法对象数组 3.获取单个公共构造方法对象 4.获取单个构造方法对象 5.获取所有公共成员变量对象的数组 …

CMDB模型管理:构筑高效IT运维的坚实基础

在CMDB中&#xff0c;模型是一个非常重要的概念&#xff0c;在前面的文章中我们提到了模型对于保障CMDB数据准确性的重要性。那么&#xff0c;要如何理解CMDB的模型呢&#xff1f;模型在CMDB中又是什么地位&#xff1f;能起到什么作用呢&#xff1f; 一、模型概述 在CMDB中&…

一个月调研分析标的“英伟达”

放在现在依然成立 一、移动网兴起至今的最佳股票与人工智能时代的目标 9 年移动网兴起至今&#xff0c;若选一只股票长期持有&#xff0c;最佳解是 ARM&#xff08;涨了 20 倍&#xff09;&#xff0c;因为无论系统层和应用层谁胜出&#xff0c;底层一定是芯片&#xff0c;而…

实现金蝶和简道云仓库数据的高效集成

实现金蝶和简道云仓库数据的高效集成 金蝶-仓库--->简道云-仓库&#xff1a;高效数据集成方案 在企业信息化管理中&#xff0c;数据的高效流转和实时监控是提升业务效率的关键。本文将分享一个实际案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将金蝶云星空…