使用 IApplicationBuilder.Map 使用 UseMvc 生成嵌套路径
Using IApplicationBuilder.Map generates nested paths with UseMvc
我正在尝试新的 asp.net 5 和 VSNET 2015 RC。
我的网络应用程序的配置:
Microsoft.AspNet.Mvc6.0.0-beta4
我对这种行为感到很困惑:
如果我使用
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseMvc();
}
一切正常。我通过调用我的控制器
http://localhost:1234/api/values 一切正常。
为了我的测试,如果我在
中更改上面的代码片段
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.Map("/api", api => {
...
api.UseMvc();
});
}
现在每次我用上面的地址调用控制器时,应用程序都会返回 404。
我哪里错了?
当你在做 app.Map
的时候。您实际上正在做的是向您的 HTTP 管道添加一个中间件,它说:当一个 HTTP 请求进入时匹配路径 /api
这就是我想要发生的事情。
然后你说:当请求满足 /api
路由时,我希望 MVC 运行。由于配置是嵌套的,因此您的控制器的新路径变为:http://localhost:1234/api/api/values.
希望这对您有所帮助!
我正在尝试新的 asp.net 5 和 VSNET 2015 RC。
我的网络应用程序的配置: Microsoft.AspNet.Mvc6.0.0-beta4
我对这种行为感到很困惑: 如果我使用
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseMvc();
}
一切正常。我通过调用我的控制器 http://localhost:1234/api/values 一切正常。
为了我的测试,如果我在
中更改上面的代码片段 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.Map("/api", api => {
...
api.UseMvc();
});
}
现在每次我用上面的地址调用控制器时,应用程序都会返回 404。
我哪里错了?
当你在做 app.Map
的时候。您实际上正在做的是向您的 HTTP 管道添加一个中间件,它说:当一个 HTTP 请求进入时匹配路径 /api
这就是我想要发生的事情。
然后你说:当请求满足 /api
路由时,我希望 MVC 运行。由于配置是嵌套的,因此您的控制器的新路径变为:http://localhost:1234/api/api/values.
希望这对您有所帮助!