ASP.NET MVC默认路径

3

我正在尝试弄清楚如何在请求中未指定控制器/任务/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,以便它重新显示与默认显示的控制器/操作/id同步?还是我需要创建某种重定向操作?

1
下次请标记为ASP.NET,MVC是一个通用的术语,它不仅与ASP相关。 - J-16 SDiZ
2个回答

4

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

您可以更改默认路由参数,使其默认为另一个操作,该操作仅重定向到“LML/TaskLibrary/7”。


感谢您的快速回复。我正在学习MVC。所以您建议默认路由参数命中一个控制器动作,该动作仅重定向到默认URL?如果很明显,对不起。我还在学习! - John Livermore
2
请记住,当请求没有匹配项时,将使用默认路由参数。 使用您的路由,以下请求是相同的 -“/”、“/ LML”、“/ LML / TaskLibrary”和“/ LML / TaskLibrary / 7”。 这取决于您决定站点的最佳着陆页面(没有参数,因此请使用所有默认值)。 - Phil

2

我是一名新手,正在学习ASP.NET MVC 4,常常需要查看如何进行更改。因此,对于那些想在代码中查看之前的答案的人……

在RouteConfig.cs文件中:

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

主要区别于原始示例,是添加了 "defaults:"。
希望这对某些人有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接