MVC 中路由的一大优点是能够将任何内容路由到任何地方,无论 url 是否与控制器和操作方法的命名匹配。RouteConfig 允许我们注册特定的路由来满足这一点。让我向您展示如何实现这一目标。
路线一:
这由路由配置中的默认路由处理。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional });
点击http://localhost
会带你到Home
控制器和Index
动作方法。
路线2:
我们可以设置一条路线来满足http://localhost/<client>
和http://localhost/<client>/<clients project name>
routes.MapRoute(
"Client",
"{client}/{title}",
new { controller = "Home",
action = "Client",
title = UrlParameter.Optional });
点击http://localhost/bacon
或http://localhost/bacon/smokey
将带您进入Home
控制器和Client
操作方法。请注意,这title
是一个可选参数,这是我们如何让两个 url 使用相同的路由。
为了让它在控制器端工作,我们的操作方法Client
需要看起来像这样。
public ActionResult Client(string client, string title = null)
{
if(title != null)
{
// Do something here.
}
}