2017-02-02 5 views
1

У меня есть проект MVC, который я пытаюсь использовать Маршрутизацию атрибутов, однако я получаю получение 404 для действительного URL.Может ли атрибуция маршрутизации в ASP.Net MVC 5 использоваться без веб-API

У меня есть Google, чтобы увидеть, что общие проблемы с атрибутом маршрутизации, чтобы увидеть, если я пропускаю что-то очевидное, и большинство ответов, казалось, убедитесь, что регистрация маршрут выглядит следующим образом:

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.MapMvcAttributeRoutes(); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 

С линии routes.MapMvCAttributeRoutes() - это код, который выполняет поиск контроллеров для атрибутов маршрутизации и настраивает маршруты.

Я также видел несколько ссылок на веб-API, поскольку, по-моему, атрибуты могут использоваться и в APIController.

Однако следующая статья, по-видимому, предполагает, что она может использоваться только в Mvc, поскольку упоминание о веб-API отсутствует.

Attribute Routing in ASP.Net MVC 5

Так есть зависимость и вы должны иметь Web API, чтобы получить маршрут Атрибуты работы в MVC?

UPDATE

Используя следующий усеченный код: '! Мир'

[Route("hello")] 
public class SomeController : Controller 
{ 
    // GET: Some 
    public string Index() 
    { 
     return "world!"; 
    } 
} 

я могу получить правильный ответ для url 'localhost: 58268/hello', что является началом. Таким образом, похоже, что вы можете иметь маршрутизацию атрибутов в Mvc 5 без зависимости от веб-API.

Должно быть, я ошибся в определении маршрута в случае фактического кода.

+0

Пожалуйста, разместите код контроллера и атрибуты маршрутизации. –

+0

@PanagiotisKanavos похоже, что я ошибся в определении атрибутов маршрута на фактическом коде контроллера. Как и когда я создавал урезанный контроллер для публикации в качестве примера, я мог бы получить результат. Поэтому, если вы хотите ответить на вопрос: «Нет зависимости от веб-API требуется для атрибутов маршрута Mvc», я отмечу его как ответ. Либо это, либо я должен просто закрыть этот вопрос. Спасибо, в любом случае. –

ответ

0

Да, вы можете абсолютно использовать маршрутизацию атрибутов MVC, это отдельная функция маршрутизации атрибутов WebAPI. Оба были введены вокруг них в одно и то же время (WebAPI 2 и MVC 5 были выпущены вместе).

Маршрутизация атрибутов API API немного более гибкая, чем MVC, но для более простых сценариев все должно работать нормально.

Обратите внимание, что в MVC Core Web API и MVC объединены, а маршрутизация атрибутов LOT более гибкая и решает большинство ограничений в предыдущих рамках.

 Смежные вопросы

  • Нет связанных вопросов^_^