От [1 118] Ядро ASP.NET 2.2 , наряду с нижним регистром, который можно также сделать маршрут подчеркнутым штриховой линией с помощью ConstraintMap
, который сделает маршрут /Employee/EmployeeDetails/1
к /employee/employee-details/1
вместо /employee/employeedetails/1
.
Для этого в ConfigureServices
метод Startup
класс:
services.AddRouting(option =>
{
option.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer);
option.LowercaseUrls = true;
});
И SlugifyParameterTransformer
класс должен быть следующие:
public class SlugifyParameterTransformer : IOutboundParameterTransformer
{
public string TransformOutbound(object value)
{
// Slugify value
return value == null ? null : Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower();
}
}
И Конфигурация маршрута должен быть следующие:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller:slugify}/{action:slugify}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
Это, сделает /Employee/EmployeeDetails/1
маршрут к [1 111]
Для идентификационных данных @Jorge Yanes Диц ответ не работает в ASP.NET Core 2.2
(, я думаю 2.x ), поэтому если Вы используете Идентификационные данные, и Ядро ASP.NET 2.2 (2.x) вот решение:
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/account/login";
options.ReturnUrlParameter = "returnurl";
...
});
Касательно: Настраивают Идентификационные данные Ядра ASP.NET
У меня было это на RegisterRoutes:: RouteConfig:
маршруты. LowercaseUrls = верный;