web-dev-qa-db-fra.com

Comment changer le nom du contrôleur ASP.NET MVC dans l'URL?

Si nous avons "example_name" nous pouvons le changer dans l'url en utilisant [ActionName ("")] Donc, je veux le faire pour le nom du contrôleur.

Je peux le faire:

ControllerName> example_nameController> dans l'URL: "/ example_controller"

Je voudrais changer le nom du contrôleur comme ceci dans l'URL: "/ example-conroller"

16
Cagatay

Vous pouvez le faire via le Routes.cs

routes.MapRoute(
      name: "Controller",
      url: "example-controller/{action}",
      defaults: new { 
      controller = "ControllerName", action ="Index"
      }   
);

Il existe également une autre façon, si vous regardez la réponse à cette question: Comment réaliser un contrôleur dynamique et une méthode d'action dans ASP.NET MVC?

13
Jamie Rees

la réponse de user449689 est bonne, mais il a oublié de mentionner que vous devez ajouter

routes.MapMvcAttributeRoutes();

dans RegisterRoutes () de votre RouteConfig.cs

11
Murphybro2

Vous pouvez utiliser Routage d'attributs .

[RoutePrefix("Users")]
public class HomeController : Controller
{
    //Route: Users/Index
    [Route("Index")]
    public ActionResult Index()
    {
        return View();
    }
}
3
Givi

vous pouvez spécifier dans Routes.cs

 routes.MapRoute(
 name: "College",
 url: "Student/{studentId}",
 defaults: new { controller = "Student", action = "Details"}
 );

Nous pouvons définir une telle contrainte comme

  routes.MapRoute(
  name: "College",
  url: "Student/{studentId}", 
  defaults: new { controller = "Student", action = "Details"},
  constraints:new{id=@"\d+"} 
  ); 
2
Lalji Dhameliya