代码之家  ›  专栏  ›  技术社区  ›  John Livermore

ASP.NET MVC默认路径

  •  2
  • John Livermore  · 技术社区  · 14 年前

    当请求中未指定任何控制器/任务/id时,我正在尝试解决如何将应用程序路由到默认控制器/任务/id的问题。

    这是我的一条路线指示……

     routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new
        {
         controller = "LML",
         action = "TaskLibrary",
         id = 7
         //id = UrlParameter.Optional
        } // Parameter defaults
       );
    

    使用此方法,如果我在“http://mywebsite/”中输入,则调用正确的控制器/操作/id。但是,我希望URL能够反映这一点。相反,URL与我输入的内容保持不变。

    使用路由,是否有一种方法可以影响URL,以便它重新显示与默认情况下显示的控制器/操作/id同步的URL?还是必须创建某种重定向操作?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Phil    14 年前

    路由是将请求映射到操作,而不是重定向。

    您可以将默认的路由参数更改为默认的另一个操作,该操作只需重定向到“lml/tasklibrary/7”。

        2
  •  2
  •   sabastienfyrre    12 年前

    我刚接触到ASP.NET MVC 4,经常想看看在哪里可以进行更改。所以,对于那些想用代码看到前面的答案的人…

    在routeconfig.cs中

    routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "LML", action = "TaskLibrary", id = 7 }
                   );
    

    与原始示例的主要区别在于添加了“默认值:”。

    我希望这能帮助别人!