Вы можете использовать атрибут ActionName следующим образом:
[ActionName("My-Action")]
public ActionResult MyAction() {
return View();
}
Обратите внимание, что тогда вам нужно будет вызвать ваш файл View "My-Action.cshtml" (или соответствующее расширение). Вам также нужно будет ссылаться на «my-action» в любых методах Html.ActionLink.
Не существует такого простого решения для контроллеров.
Редактировать: Обновление для MVC5
Включить маршруты по всему миру:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes();
// routes.MapRoute...
}
Теперь с MVC5 маршрутизация атрибутов была включена в проект. Теперь вы можете использовать:
[Route("My-Action")]
О методах действия.
Для контроллеров вы можете применить атрибут RoutePrefix
, который будет применяться ко всем методам действий в этом контроллере:
[RoutePrefix("my-controller")]
Одним из преимуществ использования RoutePrefix
является то, что параметры URL также передаются любым методам действий.
[RoutePrefix("clients/{clientId:int}")]
public class ClientsController : Controller .....
Отрежьте ..
[Route("edit-client")]
public ActionResult Edit(int clientId) // will match /clients/123/edit-client