2017-02-02 1 views
1

J'ai un projet MVC que j'essaie d'utiliser le routage d'attributs mais je continue à obtenir 404 pour l'URL valide.Le routage d'attribut Can dans ASP.Net MVC 5 peut être utilisé sans API Web

Je google pour voir ce que les problèmes communs avec l'attribut de routage sont pour voir si je manque quelque chose évidente et la plupart des réponses semblaient assurez-vous que l'enregistrement de l'itinéraire se présente comme suit:

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 } 
     ); 
    } 

Avec la ligne routes.MapMvCAttributeRoutes() étant le code qui recherche dans les contrôleurs les attributs de routage et configure les routes.

J'ai également vu quelques références à l'API Web car je pense que les attributs peuvent également être utilisés dans APIController. Cependant, l'article suivant semble suggérer qu'il peut être utilisé dans Mvc seul car il n'y a aucune mention de Web API.

Attribute Routing in ASP.Net MVC 5

est donc là une dépendance et avez-vous besoin d'avoir API Web pour obtenir la route Attributs de travail dans MVC?

MISE À JOUR

En utilisant le code dépouillé suivant: «! Monde

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

je peux obtenir une réponse valide pour l'URL 'localhost: 58268/hello', qui est un début. Il semble donc que vous puissiez avoir le routage d'attributs dans Mvc 5 sans la dépendance à l'API Web.

Je dois avoir fait une erreur en définissant l'itinéraire dans le cas du code réel.

+0

Veuillez afficher le code du contrôleur et les attributs de routage. –

+0

@PanagiotisKanavos Il semble que j'ai dû faire une erreur en définissant les attributs de mon itinéraire sur le code du contrôleur. Comme quand j'ai créé un contrôleur dépouillé à poster comme exemple, je pourrais obtenir un résultat. Donc, si vous voulez répondre à la question avec 'aucune dépendance sur l'API Web est nécessaire pour les attributs Route Mvc', je vais le marquer comme la réponse. Soit cela ou je devrais peut-être simplement fermer cette question. Merci quand même. –

Répondre

0

Oui, vous pouvez absolument utiliser le routage d'attribut MVC. Il s'agit d'une fonctionnalité distincte du routage d'attribut WebAPI. Les deux ont été introduits autour d'eux en même temps (WebAPI 2 et MVC 5 sont sortis ensemble). Le routage d'attribut d'API Web est un peu plus flexible que MVC, mais pour des scénarios plus basiques, les choses devraient fonctionner correctement. Notez que dans MVC Core Web API et MVC ont été fusionnés, et le routage d'attribut est beaucoup plus flexible et résout la plupart des limitations dans les cadres précédents.