我正在为我的网站使用 ASP.Net Web 表单路由,但我想让它更具结构性并使用适当的结构隐藏所有查询字符串 ID,例如Language/Category/PageName-Title
例子:www.abc.com/en/sports/cricket-world-cup
但凭借我当前的路由技术,我能够使其工作
www.abc.com/en/1/13/cricket-world-cup
domain/english-folder/language-id/page-id/page-title
我怎样才能使它更加结构化`www.abc.com/en/sports/cricket-world-cup
由于我的查询字符串很少,所以我这样设计
//For Page.aspx
routes.MapPageRoute("Page_Route", "en/page/{LID}/{PID}/{PageName}", "~/en/Page.aspx", false,
new RouteValueDictionary {
{ "LID", "0"},
{ "PID", "0" },
{ "PageName", "Page-not-found" }},
new RouteValueDictionary {
{ "LID", "[0-9]{1,8}" },
{ "PID", "[0-9]{1,8}" },
});
上述路由的结果让我得到像这样的友好 URL
www.abc.com/en/1/13/cricket-world-cup
但我想进一步构造 URL,就像示例中的 URL 一样。
www.abc.com/en/sports/cricket-world-cup
示例:我发现这个网址更加结构/http://www.thenational.ae/news/world/europe/turkey-providing-jobs-a-future-for-more-greeks
我怎样才能实现相同的结构他们通过querystrings
作为隐藏字段。请建议此类网址的最佳方法。
另一个例子是http://mashreqbank.com/uae/en/corporate/lending/trade-finance.aspx http://mashreqbank.com/uae/en/corporate/lending/trade-finance.aspx
他们正在使用 asp.net,但我不确定它是 ASP.Net MVC 还是 ASP.Net Webform。
我已经在这种路由上苦苦挣扎了很长时间,甚至我找不到一个可以考虑多个查询字符串的完整示例,因为大多数示例都基于一个查询字符串。
编码专家提供的任何示例帮助将不胜感激。
UPDATE:让我们考虑一下这个表,我用它来存储页面名称、标题、处理程序、语言区域等。这只是一个演示表,与我所引用的示例结构化 URL 的实际网站不同。我什至不确定他们是否使用 URL 路由进行操作,或者这些是实际的物理文件夹和文件,例如旧式网站,您可以在其中创建实际文件夹并将文件放入其中等。
Page_ID Page_Name Page_Title Page_Handler Parent_Page_ID Language_ID Region_ID
1 Home Home index.aspx 0 1 uae
2 Personal Personal index.aspx 0 1 uae
3 Accounts & Deposits Accounts & Deposits index.aspx 2 1 uae
4 Current Account Current Account current-account.aspx 3 1 uae
5 Current Gold Accounts gold Account gold-account.aspx 3 1 uae
6 Easy Saver Easy Saver Account saver-account.aspx 3 1 uae
7 Fixed Deposits Fixed Account fixed-account.aspx 3 1 uae
8 Loans Loans index.aspx 2 1 uae
9 Personal Loans Personal Loans index.aspx 8 1 uae
10 car Loans car Loans car-loan.aspx 8 1 uae
上述结构的网站示例http://mashreqbank.com/ http://mashreqbank.com/
如果页面设计相同,我们可以使用通用页面处理程序,这就是我假设的让我们说page.aspx
,
请感觉对结构和数据进行更改以达到预期的结果。