Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using IApplicationBuilder.Map generates nested paths with UseMvc

I'm trying the new asp.net 5 alongside VSNET 2015 RC.

Configuration of my webapp: Microsoft.AspNet.Mvc 6.0.0-beta4

I'm really confused about this behavior: if i use

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

everything works. I call my controller via http://localhost:1234/api/values and all is ok.

For the sake of my testing if i change the snippet above in

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

and now every time I call the controller with the address above, the app returs 404.

Where I'm wrong?

like image 838
Valerio Avatar asked Jun 29 '15 13:06

Valerio


1 Answers

When you're doing app.Map. What you're actually doing is adding a middleware to your HTTP pipeline which is saying: when an HTTP request comes in that matches the path /api here's what I want to happen.

You're then saying: I want MVC to run when a request satisfies the /api route. Since the configurations are nested the new path to your controller becomes: http://localhost:1234/api/api/values.

Hopefully this helps!

like image 138
N. Taylor Mullen Avatar answered Sep 29 '22 06:09

N. Taylor Mullen