C# 如何将url从/home/index/id重写为home索引id
.net core2.1 url重写我想使用SEO 我使用的IIS和url与项目url类似:C# 如何将url从/home/index/id重写为home索引id,c#,asp.net-core,C#,Asp.net Core,.net core2.1 url重写我想使用SEO 我使用的IIS和url与项目url类似: /Home /Home/ /Home/Index /Home/Index/Id 重写Url后: /Home /Home /Home-Index /Home-Index-Abc /Home-index-Abc?code=xxx /home/我无法访问它,它将重写/home-。请从Scott Hanselman的 我们可以制作一个I
/Home
/Home/
/Home/Index
/Home/Index/Id
重写Url后:
/Home
/Home
/Home-Index
/Home-Index-Abc
/Home-index-Abc?code=xxx
/home/
我无法访问它,它将重写/home-
。请从Scott Hanselman的
我们可以制作一个IOutboundParameterTransformer,将URL更改为两个单词格式的格式(例如),就像WordPress标准slug
public class SlugifyParameterTransformer : IOutboundParameterTransformer
{
public string TransformOutbound(object value)
{
if (value == null) { return null; }
// Slugify value
return Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower();
}
}
然后让ASP.NET管道知道这个转换器,或者在Razor页面中
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddRazorPagesOptions(options =>
{
options.Conventions.Add(
new PageRouteTransformerConvention(
new SlugifyParameterTransformer()));
});
或在ASP.NET MVC中:
services.AddMvc(options =>
{
options.Conventions.Add(new RouteTokenTransformerConvention(
new SlugifyParameterTransformer()));
});
从斯科特·汉斯曼那里
我们可以制作一个IOutboundParameterTransformer,将URL更改为两个单词格式的格式(例如),就像WordPress标准slug
public class SlugifyParameterTransformer : IOutboundParameterTransformer
{
public string TransformOutbound(object value)
{
if (value == null) { return null; }
// Slugify value
return Regex.Replace(value.ToString(), "([a-z])([A-Z])", "$1-$2").ToLower();
}
}
然后让ASP.NET管道知道这个转换器,或者在Razor页面中
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddRazorPagesOptions(options =>
{
options.Conventions.Add(
new PageRouteTransformerConvention(
new SlugifyParameterTransformer()));
});
或在ASP.NET MVC中:
services.AddMvc(options =>
{
options.Conventions.Add(new RouteTokenTransformerConvention(
new SlugifyParameterTransformer()));
});