Asp.net mvc 如何使以/home开头的路由始终直接指向home控制器和索引操作?
我有以下路线:Asp.net mvc 如何使以/home开头的路由始终直接指向home控制器和索引操作?,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有以下路线: routes.MapRoute( name: "Default", url: "home/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 这可以很好地工作,并引导用户进入/home的主控制器索引操作 如果用户输入以下内容,是否有一种方法可以使其直接指向索引操作: /主页/xxx或 /首页/xxx/x
routes.MapRoute(
name: "Default",
url: "home/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这可以很好地工作,并引导用户进入/home的主控制器索引操作
如果用户输入以下内容,是否有一种方法可以使其直接指向索引操作:
/主页/xxx或
/首页/xxx/xxx
其中xxx可以是任何东西?当然,只需从路由定义中删除
{action}
部分,以便操作始终是索引
:
routes.MapRoute(
name: "Default",
url: "home/{anything}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
当然,只需从路由定义中删除
{action}
部分,以便操作始终是索引
:
routes.MapRoute(
name: "Default",
url: "home/{anything}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果从url中删除{action}并将其保留为默认值,那么它应该可以正常工作
routes.MapRoute(
name: "Default",
url: "home/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在这种情况下,操作将始终是索引…如果从url中删除{action}并将其保留为默认值,那么它应该可以正常工作
routes.MapRoute(
name: "Default",
url: "home/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在这种情况下,操作将始终是索引…尝试以下方法以捕获所有可能的路线:
routes.MapRoute(
"Default",
"home/{*url}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional } }
);
尝试以下方法以捕捉所有可能的路线:
routes.MapRoute(
"Default",
"home/{*url}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional } }
);
这也会捕获/home/x/x/x吗?应该,但您最好对其进行双重测试。我现在还不知道这是否也可以捕获/home/x/x/x?应该可以,但你最好再测试一次。目前我还不知道这对/home/xx和/home/xx/xx的两个组合有效吗?是的,有效。
{id}
路由令牌在此路由中是可选的。对于/home/xx和/home/xx/xx的两种组合,这是否有效?是的,它将有效。{id}
路由令牌在此路由中是可选的。