Как в проекте ASP.NET Core MVC изменить URL-адрес для страниц Razor из формата по умолчанию, например http://localhost:5088/Home/Faq
, на конкретный URL-адрес, например
http://localhost:5088/freq_asked
Раньше в ASP.NET мне удавалось добиться этого, поместив это в routeConfig
:
routes.MapRoute(
name: "Contacts",
url: "contact_the_support_team",
defaults: new { controller = "Home", action = "Contacts" }
);
Как мне добиться того же в ASP.NET Core?
Мне не удалось создать ничего работающего в файле program.cs
.
Как изменить URL-адрес страниц Razor из формата по умолчанию, например http://localhost:5088/Home/Faq, на конкретный URL-адрес, например http://localhost:5088/freq_asked
На основе вашего общего фрагмента кода и описания, чтобы изменить URL-адрес страниц Razor в проекте ASP.NET Core MVC из формата по умолчанию, мы должны использовать Обычную маршрутизацию
Как вы, возможно, знаете, в ядре asp.net, независимо от его версии, есть ControllerEndpointRouteBuilderExtensions, который включает метод MapControllerRoute
, мы можем использовать то, чего вы пытаетесь достичь.
Прежде всего, вам следует использовать MapControllerRoute для определения пользовательских маршрутов в файле Program.cs. Необходимо помнить, что пользовательские маршруты должны быть определены до того, как маршрут по умолчанию будет иметь приоритет.
В дополнение к этому убедитесь, что имена вашего контроллера и метода действия соответствуют маршрутам, которые вы определяете.
Давайте посмотрим на практике, как это можно реализовать:
Файл Program.cs:
app.MapControllerRoute(
name: "customFaq",
pattern: "freq_asked",
defaults: new { controller = "Home", action = "Faq" }
);
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
Контроллер:
Ваш контроллер должен иметь действие, как показано ниже:
public IActionResult Faq()
{
return View();
}
Поэтому, когда вы вскоре нажмете https://localhost:7246/freq_asked
, он прочитает определение route pattern
и перенаправится на ожидаемый маршрут.
Выход:
Примечание. Помните, что все, что вы напишете здесь в pattern: "freq_asked"
, будет вашим URL-путем. Пожалуйста обратитесь к этому официальному документу, если хотите узнать больше.
Это было так полезно, спасибо большое
Рад помочь вам в этом и спасибо за подтверждение.
Префикс с '/' Learnrazorpages.com/razor-pages/routing#override-routes / Learn.microsoft.com/en-us/aspnet/core/razor-pages/…