属性路由继承

2023-12-27

我之前一直在我的 MVC 应用程序中使用这种方法

[Route("admin")]
public class AdminController : Controller
{

}

[Route("products")]
public class ProductsAdminController :AdminController
{ 
    [Route("list")]
    public IActionResult Index()
    {
        ...
    }
}

网址.RouteUrl() for Index返回的操作/管理/产品/列表/

现在在 .NET Core 中它忽略基类路由属性,结果只是/产品/列表/这是 .NET Core 的新功能吗?有没有什么设置可以让系统结合起来动作 + 控制器 + 基础控制器 routes?


我找不到结合的方法动作 + 控制器 + 基础控制器 自动地,但有可能实现您想要的目标,如下所示:

[Route("admin")]
public class AdminController : Controller { }

public class ProductsAdminController : AdminController
{ 
    [Route("products/list")]
    public IActionResult Index()
    {
        ...
    }
}

这种方法最终会生成一个 URL/admin/products/list,有一个明显的缺点products是每个动作都需要重复的事情。这可能是一个可以接受的妥协方案;这由你决定。你可以把它变成一个bit最好用一个常数,如下所示:

private const string RoutePrefix = "products";

[Route(RoutePrefix + "/list")]
public IActionResult Index()
{
    ...
}

它并不漂亮,因为它只是一种解决方法,但如果您不想使用,则值得考虑克里斯·普拉特的区域建议 https://stackoverflow.com/a/52335890/2630078.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

属性路由继承 的相关文章

随机推荐

  • History.js - 正确的实现

    我使用 JQuery Ajax 在名为 container 的 div 中加载网站上的内容 我必须有不同类型的链接 正常锚链接 JQuery 触发器 当单击特定 div 时触发事件 现在我想添加功能来支持后退和前进浏览器按钮以及书签功能 我
  • 如何加快 MongoDB 视图上的计数

    我一直在排查为什么我创建的 MongoDB 视图如此慢 该视图的目标是transactions集合 并返回具有openBalance大于0 我还运行一些额外的聚合阶段来按照我想要的方式塑造数据 为了加快视图的执行速度 它通过匹配视图聚合管道
  • 服务的任何公共方法的 AOP 切入点表达式

    什么是最简单的切入点表达式 它将拦截所有带有注释的bean的所有公共方法 Service 例如 我希望它会影响该 bean 的两个公共方法 Service public MyServiceImpl implements MyService
  • SVN对单个文件的权限

    SVN 是否可以为单个文件设置写权限 而存储库的其余部分都是只读的 另一种可能性是预提交挂钩脚本 http svnbook red bean com en 1 5 svn ref reposhooks pre commit html
  • 计算特定范围sql server的记录数

    我正在尝试编写一个查询来根据多个不同范围来计算记录数 我成功使用了union 但我觉得有更好的方法来做到这一点 这是我所做的 select count col1 as range1 from tbl1 where col1 lt 15000
  • 将 IOS 应用程序从一个帐户的 Testflight 转移到另一个帐户

    App is 未发表在 App Store 上 但通过以下方式分发给测试人员试飞在以前的帐户上 现在我必须将应用程序转移到新帐户 具有相同的捆绑包标识符 我可以将其放置在具有相同捆绑包标识符的新帐户中吗 转移应用程序的程序是什么 因为它在
  • 如何格式化 MongoEngine PointField 的数据

    所以我想用mongodb中的位置数据做一些实验 所以我写了一些python代码来生成一些测试数据 不幸的是 文档位于http docs mongoengine org apireference html mongoengine fields
  • 获取应用程序共享意图的包名称

    我想获取创建共享意图的应用程序名称或其包名称 我正在制作通过意图接收共享数据的应用程序 如何获取创建者应用程序的包名称 类似于 intent getSourceBackageName EDIT 我不确定我的问题是否清楚 但我需要找出调用我的
  • Git clean 排除嵌套子目录

    我在使用 git clean 和排除嵌套目录选项时遇到问题 我想从存储库中清除所有未提交的文件 不包括vendor bundle为了 我的测试报告如下 debugg dir git file txt not commited file no
  • Javascript整数从零开始[重复]

    这个问题在这里已经有答案了 我有一个关于 javascript 如何解析以零开头的整数 例如银行帐号 的问题 下面是来自 Chrome 开发工具的简单示例 var zeroTest 022 undefined zeroTest 18 为什么
  • R.java 无法为 Android 库应用程序正确生成

    我创建了一个简单的 Android 库应用程序 其中只有 1 个包含 TextView 的活动 它工作正常 但是当我将其标记为库并在另一个应用程序中引用时 当我尝试使用 findViewById R id welcome textview
  • 使用 env('APP_ENV')、config('app.env') 或 App::environment() 获取应用程序环境有什么区别?

    使用上有什么区别env APP ENV config app env or App environment 获取应用程序环境 我知道env APP ENV 愿意 ENV config app env 读取配置并App environment
  • 在 Spring Boot 中为 Undertow 启用 HTTP 2.0

    我想知道如何使用 Spring Boot 为 Undertow 启用 HTTP 2 0 我监控了该协议 目前 HTTPS 使用的是 1 1 有什么财产可以用吗 或者我应该使用此选项创建一个 EmbeddedServletContainerF
  • Python isnumeric 函数仅适用于 unicode

    我正在尝试使用以下命令检查字符串是否为数字isnumeric功能正常 但结果并不如预期 该函数仅在它是 unicode 字符串时才起作用 gt gt gt a u 1 gt gt gt a isnumeric True gt gt gt a
  • ajax 自动完成扩展器不起作用

    我在文本框中有一个自动完成扩展器 它将记录显示为数据库中的列表 但是当我单击文本框并开始输入任何内容时 却没有发生任何事情 我的html代码是
  • Java for循环优化

    我用 java for 循环做了一些运行时测试 并发现了一个奇怪的行为 对于我的代码 我需要原始类型 如 int double 等 的包装对象来模拟 io 和输出参数 但这不是重点 只要看我的代码即可 具有字段访问的对象如何比原始类型更快
  • 如何将表单输入绑定到字典值

    我正在创建一个 ASP NET core razor 页面 Web 应用程序 其中一个页面需要能够修改Dictionary
  • 导入我的自定义类并调用它的方法?

    我为我的 Android 项目创建了一个名为 Sounds 的自定义类 我希望能够从我的活动中调用它 我的课内容如下 package com mypackage import java util HashMap import android
  • 在 Windows 7 中,当 DropDownStyle = DropDownList 时,ComboBox.SelectedValue 与显示的文本不匹配

    假设 Windows 应用程序中有以下代码 ComboBox comboBox new ComboBox AutoCompleteMode AutoCompleteMode SuggestAppend AutoCompleteSource
  • 属性路由继承

    我之前一直在我的 MVC 应用程序中使用这种方法 Route admin public class AdminController Controller Route products public class ProductsAdminCo