【问题标题】:Using IApplicationBuilder.Map generates nested paths with UseMvc使用 IApplicationBuilder.Map 使用 UseMvc 生成嵌套路径
【发布时间】:2015-06-29 13:57:49
【问题描述】:

我正在尝试新的 asp.net 5 和 VSNET 2015 RC。

我的 webapp 的配置: Microsoft.AspNet.Mvc 6.0.0-beta4

我真的对这种行为感到困惑: 如果我使用

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
      ...
      app.UseMvc();
 }

一切正常。我通过调用我的控制器 http://localhost:1234/api/values 一切正常。

为了我的测试,如果我在

中更改上面的sn-p
 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
      ...
      app.Map("/api", api => {
         ...
         api.UseMvc();
       });
 }

现在每次我使用上述地址调用控制器时,应用程序都会返回 404。

我哪里错了?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api asp.net-core-mvc


    【解决方案1】:

    当你在做app.Map时。你实际上在做的是在你的 HTTP 管道中添加一个中间件,它表示:当一个 HTTP 请求进入时,它与路径 /api 匹配,这就是我想要发生的事情。

    然后你说:我希望 MVC 在请求满足 /api 路由时运行。由于配置是嵌套的,控制器的新路径变为:http://localhost:1234/api/api/values。

    希望这会有所帮助!

    【讨论】:

    • 谢谢!!!我不知道这种行为!再次感谢你!! FWIW:如果在控制器类上我更改: [Route("api/[controller]")] 到 [Route("[controller]")] 我可以避免地址中的双“api/”!
    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多