我希望能够拥有不绑定到控制器的自定义页面。这些自定义页面将全部路由到默认控制器。然后还有其他非自定义的页面正常设置了 Controller 类。我无法让路由规则适用于这两种情况。
我有如下所示的路由规则:
routes.MapRoute( _
name:="Default", _
url:="{controller}/{action}", _
defaults:=New With {.controller = "Home", .action = "Index"} _
)
routes.MapRoute( _
name:="Custom Page", _
url:="{name}", _
defaults:=New With {.controller = "Page", .action = "Index"} _
)
这种情况适用于静态控制器,但不适用于自定义页面。它总是尝试使用不存在的自定义名称 (url:="{name}") 查找控制器,因此我收到“找不到资源”错误。
如果我颠倒规则,那么自定义页面可以正常工作,但静态页面不能。
我知道问题在于两个规则相互重叠,所以总是使用第一个规则。理想情况下,我希望能够告诉路由寻找名为 X 的控制器,如果它存在,请使用它。如果不存在,则重定向到 Y 控制器并将 X 作为参数传入。现在如果控制器不存在,它不会继续下一个路由规则,它只是说找不到资源。
这样的事情可能吗?