首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏DotNet NB && CloudNative

    .NET Core开发实战(第25课:路由与终结点:如何规划好你的Web API)--学习笔记(上)

    映射到对应的 Controller 对应的 action 上面去 2、根据 Controller 和 action 的名字来生产 URL .NET Core 提供了两种路由注册的方式: 1、路由模板的方式 2、RouteAttribute 方式 这两种方式分别适用于的场景是不一样的 路由模板的方式是之前传统的方式,可以用来作为 MVC 的页面 Web 配置 现在用的比较多的前后端分离的架构,定义 Web API 的时候使用 RouteAttribute 接着是路由的定义 OrderController namespace RoutingDemo.Controllers { [Route("api/[controller]/[action]")]// RouteAttribute 需要在中间件注册的位置注入 UseEndpoints,然后对 UseEndpoints 使用 MapControllers app.UseEndpoints(endpoints => { // 使用 RouteAttribute

    94410发布于 2021-01-13
  • 来自专栏晓晨的专栏

    ASP.NET Core 奇淫技巧之SPA部署

    安利一个快速为所有 api 设置前缀方法,通过在 MVC 框架启动时给所有 api 增加一个 RouteAttribute 来实现。 Controller 来为它们加上一个前缀路由 public class RouteConvention: IApplicationModelConvention { private readonly RouteAttribute _apiPrefix; public XlRouteConvention(RouteAttribute apiPrefix) { _apiPrefix = apiPrefix application) { foreach (var controller in application.Controllers) { // 已经标记了 RouteAttribute } } } 使用: services.AddControllers(op => { op.Conventions.Insert(0, new RouteConvention(new RouteAttribute

    1.1K30发布于 2020-08-28
  • 来自专栏不做码农的开发者

    【asp.net core 系列】4. 更高更强的路由

    { public RouteAttribute(string template); public string Name { get; set; } public int Order 那么,我们了解了RouteAttribute的适用范围,继续看这个类,一共有三个属性: Name 表示这个路由特性的名称 Order 表示启用顺序,值越小,越先被匹配。 路由统一前缀 在第一节中,我们介绍了如何使用RouteAttribute为控制器里的方法标记路由信息。有时候会出现这样的一个问题,一个控制器方法里可能会出现多个方法(Action)。 : Controller { } 这时候,在方法上如果添加了RouteAttribute,设置的路由信息如果不是以/ 开始,则会将该Action的路由配置加到Controller后面。 如果没有设置RouteAttribute,则表示当前方法是处理控制器配置的路由的方法。 如果一个控制器里出现多个未设置RouteAttribute,则会出错。

    85520发布于 2020-06-09
  • 来自专栏DotNet NB && CloudNative

    .NET 云原生架构师训练营(权限系统 代码实现 ActionAccess)--学习笔记

    action.EndpointMetadata.Where(m => m is HttpMethodMetadata).FirstOrDefault() as HttpMethodMetadata; var routeAttribute EndpointMetadata.FirstOrDefault(m => m is RouteAttribute) as RouteAttribute; var resourceData ControllerName; resourceData.RouteTemplate = routeAttribute?.

    47700编辑于 2022-02-24
  • 来自专栏DotNet NB && CloudNative

    [Frombody]、[FromForm]傻傻分不清?ASP.NET Core获取请求参数方式总结

    IActionResult Test4(string name, int id) { return Content($"{name}/{id}"); } Path的自动参数绑定,需要配合RouteAttribute 实现,RouteAttribute主要是指定一个Path的模板,通过这个模板可以告诉路由是否匹配这个Action,另外一个就是可以告诉参数绑定,如何解析这个path实现参数绑定。 )]string xm, [FromRoute(Name = "id")]int bh) { return Content($"{xm}/{bh}"); } 如果Action的型参名称跟RouteAttribute int id) { return Content($"{name}/{id}"); } HttpGetAttribute、HttpPostAttribute等attribute同样可以完成RouteAttribute 的效果,而且还指定了action接受的HTTP Method的方法,可以说是加强版的RouteAttribute

    2.2K31编辑于 2023-11-02
  • 来自专栏.NET开发那点事

    ASP.NET Core MVC 如何获取请求的参数

    string name, int id) { return Content($"{name}/{id}"); } Path的自动参数绑定,需要配合RouteAttribute 实现,RouteAttribute主要是指定一个Path的模板,通过这个模板可以告诉路由是否匹配这个Action,另外一个就是可以告诉参数绑定,如何解析这个path实现参数绑定。 FromRoute(Name = "id")]int bh) { return Content($"{xm}/{bh}"); } 如果Action的型参名称跟RouteAttribute return Content($"{name}/{id}"); } HttpGetAttribute、HttpPostAttribute等attribute同样可以完成RouteAttribute 的效果,而且还指定了action接受的HTTP Method的方法,可以说是加强版的RouteAttribute

    4.2K20发布于 2020-06-19
  • 来自专栏大内老A

    ASP.NET Core MVC应用模型的构建[4]: Action的选择

    从提供的代码片段可以看出,RouteAttribute特性可以标注在Controller类型或者具体的Action方法上。 EndpointMetadata属性最终包含的终结点元数据还包括当前RouteAttribute特性和这些单纯定义约束的特性。 根据标注的HttpPostAttribute特性针对SelectorModel对象的创建与上面一致,所以我们现在只关注针对RouteAttribute特性创建的SelectorModel对象。 该对象提供的AttributeRouteModel对象自然由RouteAttribute特性提供的路由信息来创建。 这个SelectorModel对象的EndpointMetadata属性中最终会包含三个终结点元数据,分别是标注的RouteAttribute和HttpGetAttribute特性,以及根据HTTP方法约束创建的

    49610编辑于 2024-03-01
  • 来自专栏Ken的杂谈

    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

    ASP.NET Core MVC固定前/后缀的路由示例 ASP.NET Core MVC正则表达式匹配路由示例 ASP.NET Core MVC路由约束与自定义路由约束 ASP.NET Core MVC RouteAttribute 不过没关系,ASP.NET Core MVC也提供了RouteAttribute可以让我们在Controller或者Action上直接指定路由模板。 不过要强调的是,一个控制器只能选择其中一种路由配置,如果控制器标记了RouteAttribute进行路由配置,那么集中式配置的路由将不对其生效。 test/home")] public IActionResult Index() { return Content("ASP.NET Core RouteAttribute 的路由配置为前缀访问该Action;可以通过/test/servertime路由到该Action [Route(“/t/t”)] 表示忽略Controller的路由配置;可以通过/t/t路由到该Action RouteAttribute

    2K30发布于 2020-01-19
  • 来自专栏Ken的杂谈

    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

    ASP.NET Core MVC固定前/后缀的路由示例 ASP.NET Core MVC正则表达式匹配路由示例 ASP.NET Core MVC路由约束与自定义路由约束 ASP.NET Core MVC RouteAttribute 不过没关系,ASP.NET Core MVC也提供了RouteAttribute可以让我们在Controller或者Action上直接指定路由模板。 不过要强调的是,一个控制器只能选择其中一种路由配置,如果控制器标记了RouteAttribute进行路由配置,那么集中式配置的路由将不对其生效。 test/home")] public IActionResult Index() { return Content("ASP.NET Core RouteAttribute 的路由配置为前缀访问该Action;可以通过/test/servertime路由到该Action [Route(“/t/t”)] 表示忽略Controller的路由配置;可以通过/t/t路由到该Action RouteAttribute

    1.6K30发布于 2018-10-09
  • 来自专栏DOTNET

    ASP.NET MVC编程——路由

    routes)         {             routes.RouteExistingFiles = true;             //其他配置         } 使用特性配置路由 将属性RouteAttribute AttributeTargets.Class | AttributeTargets.Method, Inherited = false, AllowMultiple = true)] public sealed class RouteAttribute : Attribute, IDirectRouteFactory, IRouteInfoProvider 使用特性的三个属性或构造函数: public RouteAttribute(string template

    2.3K120发布于 2018-03-30
  • 来自专栏技术之路

    Blazor-路由模板(上)

    @attribute 设置路由模板 除了使用@Page来设置路由模板,我们还可以使用@attribute来设置路由模板 组件编译后,实际上是将@page 指令使用RouteAttribute 特性替代的 因此,我们也可以在组件中直接使用 RouteAttribute 特性指定路由模板。

    21600编辑于 2025-03-06
  • 来自专栏EdisonTalk

    Blazor学习之旅(6)路由系统

    它会扫描该程序集,以寻找具有 RouteAttribute 的组件。Blazor 使用这些值编译 RouteData 对象,该对象指定如何将请求路由到组件。 编写应用代码时,可以在每个组件中使用 @page 指令来修复 RouteAttribute。 在上面的模板中,标记指定了在运行时处理路由的组件:RouteView组件。 可以在 @page 指令中指定 RouteAttribute,方法是以字符串的形式传递它。

    1.1K20编辑于 2023-07-27
  • 来自专栏DOTNET

    ASP.NET Web API编程——路由

    5.1使用特性 RouteAttribute 路由特性定义为: public sealed class RouteAttribute : Attribute, IDirectRouteFactory, IHttpRouteInfoProvider { public RouteAttribute(); //template:描述要匹配的 URI 模式的路由模板 public RouteAttribute(string template); //路由名称 public string Name { get; set; }

    2.4K80发布于 2018-04-17
  • 来自专栏程序随笔

    5. abp集成asp.net core

    HttpMethodActionConstraint类,传入的参数就是HTTPMethod,这个就是前面说到的SelectorModel,最后就是创建路由模型了,我们会去计算一个路由模板,根据这个模板实例化RouteAttribute action参数是id,或者以id结尾且仅有一个参数,那么路由就是: api/app/xxx/{id}/{action} 或 api/app/xxx/{action}/{id} 构造完url之后就去实例化RouteAttribute 特性,构造路由: return new AttributeRouteModel( new RouteAttribute( CalculateRouteTemplate(rootPath

    83610编辑于 2023-10-19
  • 来自专栏DotNet NB && CloudNative

    使用 .NET6 打造动态 API

    { foreach (var item in action.Attributes) { if (item is RouteAttribute

    1.3K20编辑于 2022-03-22
  • 来自专栏dotNET知音

    【asp.net core】实现动态 Web API

    var selector = new SelectorModel(); selector.AttributeRouteModel = new AttributeRouteModel(new RouteAttribute selector.AttributeRouteModel == null) { selector.AttributeRouteModel = new AttributeRouteModel(new RouteAttribute null) { selector.AttributeRouteModel = new AttributeRouteModel(new RouteAttribute selector = new SelectorModel(); selector.AttributeRouteModel = new AttributeRouteModel(new RouteAttribute

    3.3K10发布于 2020-03-18
  • 来自专栏AI.NET极客圈

    Blazor带我重玩前端(五)

    Microsoft.AspNetCore.Components.LayoutAttribute(typeof(MyLayout))] [Microsoft.AspNetCore.Components.RouteAttribute

    1.6K10发布于 2020-08-12
  • 来自专栏独立观察员博客

    WPF开源项目:WPF-ControlBase

    CallerMemberName] string name = "") { var route = this.GetType().GetCustomAttributes(typeof(RouteAttribute ), true).Cast<RouteAttribute>(); string controlName = null; if (route.FirstOrDefault CallerMemberName] string name = "") { var route = this.GetType().GetCustomAttributes(typeof(RouteAttribute ), true).Cast<RouteAttribute>(); string controlName = null; if (route.FirstOrDefault

    4.2K10编辑于 2022-12-06
  • 来自专栏Dotnet9

    WPF开源项目:WPF-ControlBase

    CallerMemberName] string name = "") { var route = this.GetType().GetCustomAttributes(typeof(RouteAttribute ), true).Cast<RouteAttribute>(); string controlName = null; if (route.FirstOrDefault CallerMemberName] string name = "") { var route = this.GetType().GetCustomAttributes(typeof(RouteAttribute ), true).Cast<RouteAttribute>(); string controlName = null; if (route.FirstOrDefault

    4.3K30发布于 2021-12-01
  • 来自专栏程序员宇说

    构建可读性更高的 ASP.NET Core 路由

    在 ASP.NET Core 中,我们可以通过在 Controller 或是 Action 方法上添加 RouteAttribute 的方式将用户自定义路由信息添加到项目的路由表中。

    83510发布于 2019-07-31
领券