使用routes.maproute和参数

时间:2013-02-20 03:13:09

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

我有一个参数,我想用作URL的默认结尾,但它目前是一个参数。我希望它始终指向家庭控制器&索引操作,但“/”成为pageName参数。

例如,我想要

http://localhost:18792/?pageName=HomePage

可通过以下方式访问:

http://localhost:18792/HomePage

这是我目前的路线。地图:

routes.MapRoute(
                name: "Default",
              url: "{controller}/{action}/{pageName}",
                defaults: new { controller = "Home", action = "Index", pageName = "HomePage" }
            );

1 个答案:

答案 0 :(得分:4)

为此,您必须为每个页面创建路线。不要修改“默认”路线。 。添加新路线:

routes.MapRoute(
    name: "HomePage",
    url: "HomePage",  
    defaults: new { controller = "Home", action = "HomePage" }
);

对于动态路线,您可以使用:

routes.MapRoute(
    name: "PageName",
    url: "{pageName}",  
    defaults: new { controller = "Home", action = "Index", pageName = "defaultPage" }
);

将使用“Home”控制器中的Action“Index”映射到〜/ defaultpage或〜/ homepage:

    public ActionResult Index(string pageName)
    {
        ViewBag.Message = pageName;
        return View();
    }