2012-01-28 93 views
0

我开发一个CMS存储用户内容数据库表是这样的:URL路由的CMS

 
---------------------------------------- 
PageId | PageTitle(Unique) | Content 
---------------------------------------- 
1  | PageOne   | ... 
2  | PageTwo   | ... 
3  | PageThree   | ... 
4  | PageFour   | ... 

现在我有一个aspx页面“SitePageFactory.aspx”在根,供应当一个查询字符串动态内容传递给它,假设/SitePageFactory.aspx?pgid=1通过,然后它为PageOne提供内容。

上面的概念工作正常。

现在我想把更进一步,加入动态路由到该应用程序并修改/SitePageFactory.aspx?pgid=1/PageOne.aspx无法在根级别做到这一点。

注:目前我能够执行路由像/SitePageFactory/PageOne.aspx,但我想在根级别的结果。

谢谢。

+0

routes.MapRoute(“”,“{path}”,new {controller =“CMS”,action =“Index”,path = UrlParameter.Optional});为我工作...映射每个初始请求到CMS控制器上的索引操作 – War 2012-07-07 13:36:49

回答

0

您可以使用ASP.NET路由来完成此操作。

路由让我们将如下地址映射到:www.mysite.com/pages/pageone到一个aspx页面。您网址中的不同部分可以映射到您可以在aspx中访问的路由参数。

Here is the MSDN documentation用于路由。

您可以添加如下因素路线:

routes.MapRoute("ViewPage", 
       "<PageName>", 
       new { controller = "Page", action = "ViewPage" } 

这将网址映射www.yourdomain /到页面控制器的ViewPage方法。

+0

雅我已经知道它,但问题是如何在根级别执行路由,例如。请参阅www.guidetoindiatour.com,路由在此处生效,并生成链接,如http://guidetoindiatour.com/pg/21/Home.aspx,其中pg/21/Home.aspx的作用为pg/{PageId}/{PageTitle}。 aspx,我想要的东西像http://guidetoindiatour.com/Home.aspx – 2012-01-28 13:45:26

+0

@NishantKumar我编辑了我的答案 – 2012-01-28 15:11:33

+0

雅在工作,其实我没有说我使用WebForms,我可以相应地转换解决方案。谢谢。 – 2012-01-29 09:45:10