0
私はasp.net mvcで親切なルーティングをしていますが、基本的にはidと一緒に広告タイトルがありますが、それはidをactionに渡しますが、urlにtitle + idを表示します。どのようにasp.net mvcのようなasp.netコアでSEOフレンドリーなルーティングを処理するには?
ここにコードがあります。
routes.Add("ClinicDetails", new SeoFriendlyRoute("veterinary-clinics/{id}/details",
new RouteValueDictionary(new { controller = "clinics", action = "details" }),
new MvcRouteHandler()));
public class SeoFriendlyRoute : Route
{
public SeoFriendlyRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler) : base(url, defaults, routeHandler)
{
}
public SeoFriendlyRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler, IEnumerable namespaces) : base(url, defaults, routeHandler)
{
DataTokens = defaults;
defaults["Namespaces"] = namespaces;
}
public override RouteData GetRouteData(HttpContextBase httpContext)
{
var routeData = base.GetRouteData(httpContext);
if (routeData == null) return null;
if (routeData.Values.ContainsKey("id"))
routeData.Values["id"] = GetIdValue(routeData.Values["id"]);
return routeData;
}
private object GetIdValue(object id)
{
if (id == null) return null;
var idValue = id.ToString();
var regex = new Regex(@"^[\w|\W]+-(?<id>\d+).*$");
var match = regex.Match(idValue);
return match.Success ? match.Groups["id"].Value : id;
}
}
どのように私はasp.netコアでこの同じ機能を得ることができます。ここで