我正在使用 web-form 和 C# 开发一个 ASP.Net 网站。
例如,我使用 URL Routing 将我的基本 URL 转换为 SEO Freindly URL
基本网址
en/article.aspx?PageID=13&Language=en-US&parID=5&Issue=17&cid=1&aid=173&wid=17
使用 URL 路由之后
en/article/en-US/13/13/17/1/173/this-is-the-title-of-the-article
我在 global.asax 中的路由代码
routes.MapPageRoute("ArticleGeneral", "en/article/{Language}/{PageID}/{ParID}/{Issue}/{cid}/{aid}/{ArticleTitle}", "~/en/Article.aspx", false,
new RouteValueDictionary {
{ "Language", "en-US"},
{ "PageID", "0" },
{ "ParID", "0"},
{ "Issue", "0"},
{ "cid", "0"},
{ "aid", "0"},
{ "ArticleTitle", "event-not-found" }},
new RouteValueDictionary {
{"Language", "[a-z]{2}-[a-z]{2}"},
{ "PageID", "[0-9]{1,8}" },
{ "ParID", "[0-9]{1,8}" },
{ "Issue", "[0-9]{1,8}" },
{ "cid", "[0-9]{1,8}" },
{ "aid", "[0-9]{1,8}" }
});
我需要进一步处理此路由以使其更像
zh/article/CategoryName/WriterName/TitleOfArticle
我不确定如何使用此路由模式将 ID 替换为实际名称
我想构建类似于 www.asp.net 的页面
http://www.asp.net/web-forms/overview
http://www.asp.net/web-forms/tutorials
http://www.asp.net/web-forms/videos
http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/url-routing
我怎样才能以这种方式构建我的 URL,因为它们看起来很干净。我对这个 url 感到困惑,因为它们没有将任何 PageID 作为 URL 的一部分传递,它们是使用隐藏字段还是它们如何解析这些 url。
我的网站是多语言的,我为一般页面传递了像 PageID 和 LanguageID 这样的查询字符串,对于文章,我传递了几个查询字符串,如上面的示例所示。
我将不胜感激参考 asp.net web-forms 而不是 MVC 对此的答案。
指向一个完整示例的指针将是很好的示例,我已经看到传递 ID 作为 Friend Url 的一部分。