用于CMS的MVC4 MapRoute

时间:2013-10-25 11:19:35

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

使用MVC4构建CMS。我对MVC的体验有限,并尝试创建一个可以处理CMS创建的页面结构的MapRoute。这些页面的URL将与website.com/About

一致

为了解决这个问题,我提出了以下内容

        routes.MapRoute(
            name: "Default",
            url: "{p}",
            defaults: new { controller = "Home", action = "Index", p = UrlParameter.Optional }
        );

这适用于根级页面但如果我想要子网页如website.com/About/OurTeam

我得到了404.理想情况下,我想要的是能够将.com位之后的整个url作为字符串传递并在控制器中对其进行排序,或者将级别拆分为参数数组并传递通过'p'。

希望这是有道理的。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用:

routes.MapRoute(
            name: "Default",
            url: "{*p}",
            defaults: new { controller = "Home", action = "Index", p = UrlParameter.Optional }
        );

星号表示它是一个包罗万象的路线。请记住,这些路线非常贪婪,请确保这些路线低于任何特定路线。

您还可以向此路由添加路由约束,以确定该页面是否存在于数据库中。有关详细信息,请参阅this post