【发布时间】:2015-05-01 01:33:09
【问题描述】:
我不确定是否可以创建完整的友好网址(Slug 我认为他们在 wordpress 中称之为)。
我想使用 global.asax 文件中定义的单个路由动态创建友好的 url。
示例:
about-us/
about-us/who-we-are/
about-us/sub-page/sub-page2/
media/news/
media/photo-gallery/
media/press/
目前我必须为提到的每个 url 定义路由。
我过去曾尝试使用 gloabal.asax 中定义的单一路线创建上述路线
例子
在 global.asax 文件中,我调用数据库表并获取 Page_Name、Page_Handler、Page_Title 等信息......
//Create Route
//some logic to get url segments so that it can be passed to
getPageDetails(PageURL)
{
//logic to get PageHandler so that route can be created
}
//For general.aspx Page
routes.MapPageRoute("Page", "about-us/", "~/Aboutus.aspx", false,
new RouteValueDictionary {
{ "path", "Page-not-found" },{ "PageName", "Page-not-found" }
});
如何动态创建此路由,以便我可以动态传递about-us/ 和 pageHandler,以便一个路由函数调用所有页面的路由。如果这是可能的,那么我可以通过添加其他路由来更改 global.asax 路由部分,从而向网站添加尽可能多的页面。
请告知如何调用数据库函数来获取页面处理程序并将其分配给路由以处理路由我不确定这是否可能。
在 wordpress 中,他们创建页面和友好的页面名称,我们可以在 asp.net 网络表单中实现相同的目标。
带有数据的示例表
Page_ID Page_Name Page_Handler Page_URL
1 About Us General.aspx /about-us/
2 Who we are General.aspx /about-us/who-we-are/
3 ... .. /about-us/sub-page/sub-page2/
4. Media #
5 News news.aspx /media/news/
6 Photo Gallery galler.aspx /media/photo-gallery/
【问题讨论】:
-
你真的需要 single 路由,还是只想在应用启动时动态生成路由?
标签: c# asp.net webforms routing url-routing