IApplicationBuilder Map

Val*_*rio 5 c# asp.net-mvc asp.net-web-api asp.net-core-mvc

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

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

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

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
      ...
      app.UseMvc();
 }
Run Code Online (Sandbox Code Playgroud)

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

为了我的测试,如果我更改上面的代码片段

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
      ...
      app.Map("/api", api => {
         ...
         api.UseMvc();
       });
 }
Run Code Online (Sandbox Code Playgroud)

现在,每当我用上面的地址呼叫控制器时,应用程序就会重新启动404.

哪里我错了?

N. *_*len 7

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

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

希望这有帮助!