Я создам свой URL следующим образом:
/
(в HomeController
)./details/123
вместо /home/details/123
, зная, что 123 всегда является числом (в HomeController
)./info
вместо /home/info
(в HomeController
)./account/signin
(в AccountController
).В моем приложении больше нет страниц.
Я создал два маршрута, например:
routes.MapRoute(
name: "Home",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Проблема в том, что страница аккаунта выдает ошибку 404. Остальные страницы работают.
Я создал один маршрут, как показано ниже:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
К каждому методу внутри HomeController
добавлен атрибут Route
с правильным URL-адресом.
Проблема в том, что теперь страницы обзора и входа в систему работают, другие выдают ошибку 404.
Как удалить домашний каталог из URL-адреса с помощью ASP.NET MVC?
Чтобы использовать маршруты атрибутов, вам нужно добавить
routes.MapMvcAttributeRoutes();
в файл RouteConfig.cs.
Он должен идти перед маршрутом по умолчанию.