Только только начал изучать ASP.NET -> пишу приложение с возможностью регистрации и входа через обычную html форму.
На главной странице приложения будет соответствующие кнопки, я хочу чтобы по нажатию на них пользователя перекидывало на xxx.com/registration
и xxx.com/login
соответственно, где будет подружатся новая форма с полями, кнопками, все дела.
Но есть проблема, для того чтобы обратится к методу, который возвращает эту самую форму, нужно писать url такого типа: xxx.com/registration/registration
или xxx.com/login/login
, т.е обращаться к контроллеру, а потом к методу.
ВОПРОС: как сделать так, чтобы не нужно было указывать имя метода в url, тем самым писать такие некрасивые пути xxx.com/registration/registration
, как сделать так, чтобы нужно было обращаться только к контроллеру xxx.com/registration
, после чего подгружалась нужная форма??
Первое решение это в вашем контроллере сделать действие с названием Index
, в этом случае в пути его можно не указывать, и путь site.ru/controllerName
будет автоматически идти к действию Index
.
Это поведение прописано в маршруте по умолчанию, обычно в файле startup.cs
.
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
Второе решение это создать специальный маршрут для этого
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "myRoute",
/* шаблон маршрута */
template: "registration";
/* куда отправим запрос по этому шаблону */
defaults: new { controller = "registration", action = "myRegistrationAction" });
});
Основы маршрутизации в ASP.NET Core.
Третий вариант задавать маршруты с помощью атрибутов:
[Route("registration")]
public IActionResult AnyActionName()
Атрибуты маршрутизации.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вот есть кодКогда нажиму на клавишу, куб должен появляться, а когда отпускаю пропадать, но ничего не выходит