9 votes

Comment obtenir un nom d'action asp.net mvc avec un trait d'union ?

Comment obtenir le nom d'une action asp.net mvc avec un trait d'union, par exemple, www.domain.com/about-usabout-us est le nom de l'acton dans le contrôleur domestique. Avec cette approche, je peux obtenir le nom de l'action comme suit contact-us , how-to etc.

11voto

Jhourlad Estrella Points 1494

Voici la solution complète du problème pour un projet .Net MVC 5 :

  1. Ouvrez le dossier de votre projet App_Start/RouteConfig.cs fichier.

  2. Sur votre RegisterRoute modifiez les codes de la manière suivante :

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapMvcAttributeRoutes(); // <--- add this line to enable custom attribute routes
    
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
  3. Maintenant, ouvrez votre fichier de contrôleur et ajoutez la définition de votre route personnalisée au sommet de votre action comme indiqué ci-dessous :

    [Route("about-us")]
    public ActionResult AboutUs()
    {
        return View();
    }

Vous devriez maintenant être en mesure d'utiliser votre route personnalisée comme ceci :

http://yourdomain.com/about-us

10voto

jainvikram444 Points 4237

Vous pouvez donner le nom de votre action à l'intérieur de actionName étiquette.

[ActionName("about-us")]
public ActionResult AboutUs() {
    return View();
}

1voto

Kevin Farrugia Points 41

Dans MVC5, vous pouvez également configurer des routes d'attributs :

    [Route("about-us")]
    public ActionResult AboutUs()
    {
        return View();
    }

0voto

Paritosh Points 5216

Sur AreaRegistration.cs vous pouvez ajouter l'entrée de la table de route comme ci-dessous.....

        context.MapRoute(
            "about_us_default",
            "about-us",
            new { action = "AboutUs" }
        );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X