可以创建自定义路由约束,该约束可在路由内部使用以将参数约束为特定值或模式。
此约束将匹配典型的文化/地区模式,例如en-US,de-DE,zh-CHT,zh-Hant。
public class LocaleConstraint : IRouteConstraint { private static readonly Regex LocalePattern = new Regex(@"^[a-z]{2}(-[a-z]{2,4})?$", RegexOptions.Compiled| RegexOptions.IgnoreCase); public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) { if (!values.ContainsKey(routeKey)) return false; string locale = values[routeKey] as string; if (string.IsNullOrWhiteSpace(locale)) return false; return LocalePattern.IsMatch(locale); } }
之后,必须先注册约束,然后才能在路由中使用约束。
services.Configure<RouteOptions>(options => { options.ConstraintMap.Add("locale", typeof(LocaleConstraint)); });
现在,它可以在路线内使用。
[Route("api/{culture:locale}/[controller]")] public class ProductController : Controller { }
[HttpGet("api/{culture:locale}/[controller]/{productId}"] public Task<IActionResult> GetProductAsync(string productId) { }
app.UseMvc(routes => { routes.MapRoute( name: "default", template: "api/{culture:locale}/{controller}/{id?}"); routes.MapRoute( name: "default", template: "api/{controller}/{id?}"); });
本文向大家介绍asp.net-core 基本路由,包括了asp.net-core 基本路由的使用技巧和注意事项,需要的朋友参考一下 示例 这将匹配的请求/Home/Index,/Home/Index/123并/
本文向大家介绍ASP.NET Core MVC 配置全局路由前缀,包括了ASP.NET Core MVC 配置全局路由前缀的使用技巧和注意事项,需要的朋友参考一下 ASP.NET Core MVC 配置全局路由前缀 前言 大家好,今天给大家介绍一个 ASP.NET Core MVC 的一个新特性,给全局路由添加统一前缀。严格说其实不算是新特性,不过是Core MVC特有的。 应用背景 不知道大家在
在ASP.NET Core 1.x中,我可以在Configure中使用身份验证方法,但现在在ASP.NET Core 2.0中,我必须在ConfigureSreservices中设置所有内容,而不能在ConfigureMethod中配置。例如:
本文向大家介绍详解ASP.NET Core端点路由的作用原理,包括了详解ASP.NET Core端点路由的作用原理的使用技巧和注意事项,需要的朋友参考一下 端点路由(Endpoint Routing)最早出现在ASP.NET Core2.2,在ASP.NET Core3.0提升为一等公民。 Endpoint Routing的动机 在端点路由出现之前,我们一般在请求处理管道的末尾,定义MVC中间件解
本文向大家介绍asp.net-mvc 路由基础,包括了asp.net-mvc 路由基础的使用技巧和注意事项,需要的朋友参考一下 示例 当您yourSite/Home/Index通过浏览器请求url时,路由模块会将请求定向到class的Indexaction方法HomeController。如何知道将请求发送到此特定类的特定方法?出现了RouteTable。 每个应用程序都有一个路由表,在其中存储路
安装 ASP.NET Core 和 TypeScript 首先,若有需要请安装 ASP.NET Core。此篇指南需要使用 Visual Studio 2015 或 2017。 其次,如果你的 Visual Studio 不带有最新版本的TypeScript,你可以从这里安装。 新建工程 选择 File 选择 New Project (Ctrl + Shift + N) 选择 Visual C#