我对使用asp.net mvc进行路由仍然很新,所以也许这很明显,我只是错过了答案......
我有一个名为'pages'的控制器,它有几个动作结果,'信息','历史'等。每个动作结果都有一个字符串,从那里,它返回一个基于字符串名称的视图。所以...
页/信息/关于 页/信息/产品 页/历史/雇员
等。当然,控制器名为“页面”。我想知道我是否可以使用路由来删除用户端URL的“页面”部分,只是为了更加用户友好的方法?
答案 0 :(得分:3)
是的,你可以这样做:
context.MapRoute(
"Pages_History_Employees",
"History/Employees", // URL with parameters
new { controller = "Pages", action = "History" }
);
只需将控制器指定为Pages,并指定您想要的任何url作为第二个参数。这是说我想将History / Employees URI路由到Pages控制器并使用History操作来处理这条路径。
请注意,如果你的路线末端有默认的MVC路线,它会首先匹配这条路线。然后您将收到一个错误,因为它将使用Employees操作查找History控制器。