使用ASP.NET MVC属性路由时的默认路由

泰德·尼伯格(Ted Nyberg)

我正在通过Web API使用属性路由,并且如果我使用以下控制器请求URL / myapi / list一切都会按预期进行:

[RoutePrefix("myapi")]
public class MyController : ApiController
{
    [HttpGet]
    [Route("list")]
    public async Task<string> Get()
    {
       // Return result
    }
}

但是,我希望我的Get()方法是默认的,即当请求URL / myapi时(没有/ list部分)。

但是,如果我像这样删除Route属性“列表”部分,则...

[RoutePrefix("myapi")]
public class MyController : ApiController
{
    [HttpGet]
    [Route] // Default route
    public async Task<string> Get()
    {
       // Return result
    }
}

...我收到403.14错误消息

“ Web服务器被配置为不列出此目录的内容。”

关于什么可能导致此的任何想法?

谢谢!

编辑:如果我使用/ api / myapi之类的默认路由模式请求API控制器,则它会按预期映射到Get()方法。

默认路由在属性路由之后注册:

    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
泰德·尼伯格(Ted Nyberg)

正如haim770在评论中指出的那样:问题是我有一个路由前缀同名物理文件夹

重命名文件夹或路由前缀可以解决此问题。

我猜想有一种替代方法是调整路由/处理程序的顺序,以确保属性路由优先于物理路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Core MVC默认路由

来自分类Dev

ASP.NET MVC服务路由会覆盖默认路由

来自分类Dev

.net MVC默认路由

来自分类Dev

如何在控制器ASP.NET MVC 5上禁用默认路由

来自分类Dev

默认路由会干扰ASP.MVC中属性路由中的已定义路径

来自分类Dev

Asp.net mvc - 将默认路由更改为 http://myparameter.localhost:5000/controller/action/id

来自分类Dev

具有约束的 ASP.NET Core 路由不会回退到默认路由

来自分类Dev

ASP.NET MVC属性路由

来自分类Dev

ASP.NET Core 3.0使用属性路由更改默认终结点路由

来自分类Dev

ASP.NET WebApi2默认路由找不到其他命名的api?

来自分类Dev

显示Asp Mvc网站中默认路由的完整URL

来自分类Dev

使用ASP.Net 5的MVC 6属性路由注册路由

来自分类Dev

使用区域时的ASP.NET路由

来自分类Dev

使用UI时的VPN默认路由问题

来自分类Dev

当出现使用默认路由器的情况时

来自分类Dev

使用UI时的VPN默认路由问题

来自分类Dev

我如何配置ASP.NET Core路由以路由到控制器(没有可选动作)(如果存在),然后回退到默认路由?

来自分类Dev

ASP.net MVC路由

来自分类Dev

Linux路由问题,更具体的路由仍使用默认路由

来自分类Dev

Asp.net MVC 5 属性路由约束

来自分类Dev

如何在asp.net C#中为某些控制器操作设置默认路由?

来自分类Dev

如何在asp.net C#中为某些控制器操作设置默认路由?

来自分类Dev

MVC控制器被称为DocumentationController时,使用默认路由为我提供了403禁止错误

来自分类Dev

在带有区域的ASP.NET MVC 5中使用路由属性

来自分类Dev

如何使用属性路由使ASP.NET MVC 5区域显示为网站根

来自分类Dev

使用子文件夹的Asp.net MVC路由

来自分类Dev

使用子文件夹的Asp.net MVC路由

来自分类Dev

不带SPA且使用ASP.NET MVC路由的AngularJS

来自分类Dev

Asp.Net Core MVC:无法使用区域配置路由

Related 相关文章

  1. 1

    ASP.NET Core MVC默认路由

  2. 2

    ASP.NET MVC服务路由会覆盖默认路由

  3. 3

    .net MVC默认路由

  4. 4

    如何在控制器ASP.NET MVC 5上禁用默认路由

  5. 5

    默认路由会干扰ASP.MVC中属性路由中的已定义路径

  6. 6

    Asp.net mvc - 将默认路由更改为 http://myparameter.localhost:5000/controller/action/id

  7. 7

    具有约束的 ASP.NET Core 路由不会回退到默认路由

  8. 8

    ASP.NET MVC属性路由

  9. 9

    ASP.NET Core 3.0使用属性路由更改默认终结点路由

  10. 10

    ASP.NET WebApi2默认路由找不到其他命名的api?

  11. 11

    显示Asp Mvc网站中默认路由的完整URL

  12. 12

    使用ASP.Net 5的MVC 6属性路由注册路由

  13. 13

    使用区域时的ASP.NET路由

  14. 14

    使用UI时的VPN默认路由问题

  15. 15

    当出现使用默认路由器的情况时

  16. 16

    使用UI时的VPN默认路由问题

  17. 17

    我如何配置ASP.NET Core路由以路由到控制器(没有可选动作)(如果存在),然后回退到默认路由?

  18. 18

    ASP.net MVC路由

  19. 19

    Linux路由问题,更具体的路由仍使用默认路由

  20. 20

    Asp.net MVC 5 属性路由约束

  21. 21

    如何在asp.net C#中为某些控制器操作设置默认路由?

  22. 22

    如何在asp.net C#中为某些控制器操作设置默认路由?

  23. 23

    MVC控制器被称为DocumentationController时,使用默认路由为我提供了403禁止错误

  24. 24

    在带有区域的ASP.NET MVC 5中使用路由属性

  25. 25

    如何使用属性路由使ASP.NET MVC 5区域显示为网站根

  26. 26

    使用子文件夹的Asp.net MVC路由

  27. 27

    使用子文件夹的Asp.net MVC路由

  28. 28

    不带SPA且使用ASP.NET MVC路由的AngularJS

  29. 29

    Asp.Net Core MVC:无法使用区域配置路由

热门标签

归档