ASP.NET Сore 2.0 действие по умолчанию

198
17 марта 2018, 15:09

Только только начал изучать 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, после чего подгружалась нужная форма??

Answer 1

Первое решение это в вашем контроллере сделать действие с названием 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()

Атрибуты маршрутизации.

READ ALSO
SetActive. Объясните, почему не работает?

SetActive. Объясните, почему не работает?

Вот есть кодКогда нажиму на клавишу, куб должен появляться, а когда отпускаю пропадать, но ничего не выходит

274
XML: получение префикса для XPath

XML: получение префикса для XPath

Есть XML (покажу интересующую его часть):

238