C # ASP.Net Core: отображать контроллер по умолчанию и просматривать в URL - PullRequest
0 голосов
/ 25 апреля 2019

Я пробую Visual Studio 2019 и ASP.Net Core.

На моем рабочем столе запущен небольшой пример сайта (разработка). Я могу запустить сайт в режиме отладки, и появляется браузер. Начальный отображаемый URL просто:

    https://localhost:12345/

Я бы хотел, чтобы это было:

    https://localhost:12345/Home/Index

или каковы будут начальные controller и view. Я могу добавить controller и view к исходному URL, но есть ли способ получить их там по умолчанию? Я сделал несколько очков, но не должен знать, какие термины использовать.

Идеи

Редактировать

мои маршруты в startup.cs выглядят так:

    app.UseMvc(routes => {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });

Похоже, что .Net Core 2.1 не предлагает опцию url.

Редактировать 2

Моя цель состоит в том, чтобы буквально иметь контроллер «по умолчанию», а имена представлений появляются в URL браузера, когда я попадаю на «домашнюю» страницу. На данный момент, когда я запускаю приложение в браузере в режиме отладки, все, что я вижу в отображении URL-адреса: «https://localhost:12345/". Я не пытался опубликовать это, поэтому я не знаю, что может сделать рабочая версия .

Ответы [ 2 ]

2 голосов
/ 26 апреля 2019

По вашему запросу вы можете использовать промежуточное программное обеспечение Rewriter следующим образом:

var rules = new RewriteOptions()
        .AddRedirect(@"^.{0}$", "/Home/Index");
app.UseRewriter(rules);

app.UseMvc(
    routes =>
    {
        routes.MapRoute(
            name: "defaults",
            template: "{controller=Home}/{action=Index}/{id?}");
    }
    );
2 голосов
/ 25 апреля 2019

Я не уверен, почему вы хотите этого, поскольку текущее поведение на самом деле лучше и более стандартно.Однако, способ остановить это - удалить значения по умолчанию из маршрута:

app.UseMvc(routes => {
    routes.MapRoute(
        name: "default",
        template: "{controller}/{action}/{id?}");
});

Тогда, части контроллера / действия маршрута потребуются, и HomeController.Index может быть доступен только путем буквального указаниямаршрут /Home/Index.Тем не менее, это приведет к удалению вашего корневого маршрута, поэтому переход к https://localhost:12345 без указания пути приведет к 404.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...