2

我有一个参数,我想用作 URL 的默认结尾,但它目前是一个参数。我希望它始终指向 Home Controller & Index Action,但“/”成为 pageName 参数。

例如,我想要

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

可通过以下方式访问:

http://localhost:18792/HomePage

这是我当前的 routes.maproute:

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

1 回答 1

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" }
);

它将映射到 ~/defaultpage 或 ~/homepage 与“主页”控制器中的操作“索引”:

    public ActionResult Index(string pageName)
    {
        ViewBag.Message = pageName;
        return View();
    }
于 2013-02-20T03:35:17.983 回答