Jquery ASP.NET MVC中的Url路由问题
我试图建立一个CMS,我只需要在网站前端的两个视图,它应该像Jquery ASP.NET MVC中的Url路由问题,jquery,asp.net,asp.net-mvc,Jquery,Asp.net,Asp.net Mvc,我试图建立一个CMS,我只需要在网站前端的两个视图,它应该像 //localhost/ => Should be Index / Home Page //localhost/any-main-page1 //localhost/any-main-page2 . . //localhost/any-main-pageN //localhost/any-main-page1?{any-length-query-string} //localhost/any-main-page1/an
//localhost/ => Should be Index / Home Page
//localhost/any-main-page1
//localhost/any-main-page2
.
.
//localhost/any-main-pageN
//localhost/any-main-page1?{any-length-query-string}
//localhost/any-main-page1/any-sub-page1
//localhost/any-main-page1/any-sub-pag1e?{any-length-query-string}
主页和子页或子页
要求是对于任何子页面,它可以是任意数量的子页面,最少3级,最多可以是任何内容
我尝试了path.js
,它出现在地址栏中,这将不是纯粹的SEO友好:(
我试过使用“SlugRouteHandler()”
,但并非在所有情况下都能解决问题。
我真的需要从数据库加载URL,因为管理员将创建所有的主和子页面
数据库:
可选单
seourl是列名,数据为:
家庭、关于我们、服务、服务/网络、服务/营销等,等等。这不仅仅是您手头上的“路由问题”。您需要一个跨越所有三层的解决方案:
- 路由和名称解析
- 唯一命名和段塞化名称
- 将其存储在数据库中
- 表结构或类结构,以及从数据库中提取的示例对象的外观
- 名称上的约束--每个“主页”名称是否保证唯一?给定主页的每个子页是否保证唯一?给定子页的每个子页是否保证唯一?您明白了
routes.MapRoute("Page Resolution",
"{mainPage}/{subPage}/{subSubPage}",
new {controller = "PageController", action = "Page" }
);
routes.MapRoute("Page Resolution",
"{mainPage}/{subPage}",
new {controller = "PageController", action = "Page" }
);
routes.MapRoute("Page Resolution",
"{mainpage}",
new {controller = "PageController", action = "Page" }
);
控制器
存储库中的代码可以处理重载以查找没有子页面或子页面的页面
上面的代码被简化了,因为您还没有向我们展示任何有助于我指定的代码。在这种情况下,我选择让存储库层处理如果这些值中的任何一个是String.Empty
;并且因为我不知道您的数据检索机制是什么,所以我无法进一步(SQLDataClient、LinqToSql、实体框架、NHibernate等)
我还假设对URL进行修饰和段塞是根据关于这个主题的另一个堆栈溢出问题来完成的
作为一般解决方案,以下是三个堆栈溢出问题,它们解决了您实际遇到的不同问题:
public ActionResult Page(string mainPage, string subPage, string subSubPage)
{
var pageRepository = new PageRepository(); //simplified. Don't do this in actual code
var page = pageRepository.GetPage(mainPage, subPage, subSubPage);
var pageViewModel = new PageViewModel(page);
return View(pageViewModel);
}