2017-02-10 9 views
0

У меня есть веб-API, который использует условную маршрутизацию в ASP.NET Core 1.1. У меня есть следующий код в Configure метод моего Startup.cs:Веб-API, не работающий с маршрутизацией на основе протокола

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "api", 
     template: "api/inventory", 
     defaults: new { controller = "Inventory" }); 
}); 

У меня есть еще один InventoryController.cs класс, содержащий:

public class InventoryController : Controller 
{ 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 
} 

Я ожидаю, что я буду получать ["value1","value2"], когда я называю api/inventory, но это не случай. Вместо этого я получаю 404. Я новичок в ASP.NET и пробовал почти все, что мог придумать, и я нахожусь в конце. Замечу, что использование RouteAttribute делает все нормально.

ответ

0

вы пробовали это делать, как этот

app.UseMvc(config => { 
      config.MapRoute(
       name: "Default", 
       template: "{controller}/{action}/{id?}" 
       ,defaults: new { controller="App", action="Index"} 
       ); 
     }); 

и ваш класс будет выглядеть

[Route("api/Inventory")] 
public class InventoryController : Controller 
{ 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
    return new string[] { "value1", "value2" }; 
    } 
} 
+0

Как я уже упоминал в моем вопросе, используя 'RouteAttribute' делает все отлично работает. Но я хочу знать, почему использование обычной маршрутизации не работает. – Hele