MVC3结构路由

时间:2012-03-06 09:23:16

标签: asp.net-mvc-3 routes

我有以下网站结构:

(单元/子部分/页/ 1..N)

e.g.
News/Current
News/Archive
News/Current/Pages/23
News/Archive/Pages/3

如果用户访问/新闻我希望他们默认为新闻/当前,否则他们会看到上面的页面。 类似地,

Events/Latest
Events/London
Events/Latest/Pages/15
Events/Archive/Pages/4

我有新闻和事件的控制器设置但是如何创建Actions和global.asax MapRoutes来处理我的结构?

我不想为此使用区域,只需要简单的控制器和操作。一个部分的每个View都将处理一个带有来自数据库的ContentPage属性的ViewModel?

因此每个Section都有一个View,它将填充ContentPage PartialView。

由于

1 个答案:

答案 0 :(得分:1)

你有两种选择:

  1. 使用区域
  2. ArchiveLatest创建路线,使Pages之后的部分成为包含该页面的参数。
  3. <强>更新

    路线:

    routes.MapRoute(
        "MySuperRoute",
        "{controller}/{section1}/{section2}/{id}",
        new { controller = "Home", action = "TheHandlingAction", id = UrlParameter.Optional }
    );
    

    行动:

    public ActionResult TheHandlingAction(string section1, string section2, int id)
    {
    }