1

我正在使用 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 的一部分。

4

0 回答 0