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"
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?
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
Vous pouvez utiliser Routage d'attributs .
[RoutePrefix("Users")]
public class HomeController : Controller
{
//Route: Users/Index
[Route("Index")]
public ActionResult Index()
{
return View();
}
}
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+"}
);