如何动态创建urls/链接,如: www.restaurant.com/restaurant/restaurant-name-without-some-characters-like-space-coma-etc/132
我可以用什么关键词来搜索一些关于这个主题的文章?(如何在asp.net mvc中生成和处理这种urls )
这里有一些问题:如何生成链接?(在db中存储slugs?)如果slug不规范,重定向或不重定向?
编辑:显然,它们被称为slugs
发布于 2010-02-01 13:53:55
您必须使用下面的内容。
Routes.MapRoute(
"Post",
"posts/{id}/{*title}",
new { controller = "Posts", action = "view" }
);
和一个简单的扩展方法:
public static class UrlExtensions
{
public static string ResolveSubjectForUrl(this HtmlHelper source, string subject)
{
return Regex.Replace(Regex.Replace(subject, "[^\\w]", "-"), "[-]{2,}", "-");
}
}
发布于 2010-02-01 13:58:49
我今天刚问了一个relevant question,关于生成slug,又名/ slugify标题。
在使用slug获取URL时,您可以创建一个同时接受ID
(和其他必需参数)和slug
的操作,并简单地忽略该slug。
public ActionResult Foobar(int id, string slug)
{
//-- Do Something
}
或者更优雅的做法是,使用map route忽略URL后面的trialing字符串,并映射到Foobar(int id)
。
https://stackoverflow.com/questions/2174820
复制相似问题