Как правильно настроить routetable для направления URL на действие контроллера
В приложении MVC 5 я хочу принять два разных типа URL запроса:
http://www.myapp.com/brand/controller/action
http://www.myapp.com/controller/action
Оба URL должны быть направлены на действия контроллера.
Я пытался включить в него необязательный параметр brand, но безуспешно.
RouteTable.Routes.MapRoute(
"default",
"{brand}/{controller}/{action}",
new { brand = UrlParameter.Optional, controller = "Home", action = "Index" });
Видимо необязательный параметр недопустим перед контроллером.
Любая идея?
1 ответ
Спасибо за ваш комментарий, Стивен.
Я хочу вставить необязательный параметр brand в URL, бренд должен содержать несколько строковых значений, но здесь я хочу игнорировать его и направить на корректное действие контроллера.
Ну, я нашел одну функцию, которая может быть полезна для этого случая:
RouteTable.Routes.MapMvcAttributeRoutes();
Но дело в том, что я должен поставить атрибут Route для каждого действия контроллера, например:
public class LoginController : Controller
{
[HttpGet]
[Route("~/{brand}/Login")]
[Route("~/Login")]
public ActionResult Index()
{
return View();
}
}
Может быть, мне нужно найти несколько примеров, как использовать атрибуты маршрутов.