我已经搜索了很长时间,但是在这种情况下,我没有找到答案。
我有一个HomeController
,并且 route.config 中的默认路由如下:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
所以; http://localhost:36690/Home
自动调用Index
。
我也有一个MyController
方法的Index
(这是 route.config 中的自定义路由),可以编写http://localhost:36690/My
并起作用。
但是我想有一个自定义路线 ,而没有任何 Index
。
如果我请求localhost:36690/New
,则应调用BASIC
。
所以我尝试了以下操作:
routes.MapRoute(
"New",
"{controller}/{action}",
new { controller = "New", action = "Basic" }
);
但是它会忽略我的默认操作“基本”并抛出错误:
“ /”应用程序中的服务器错误。无法找到该资源。 “
答案 0 :(得分:0)
您可以添加专门用于该控制器的另一条路由。
routes.MapRoute(
name: "New",
url: "New/{action}",
defaults: new { controller = "New", action = "Basic" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这样,当调用/New
时,它将默认为NewController.Basic