c# MVC在路由失败后继续使用路由

本文关键字:路由 继续 失败 MVC | 更新日期: 2023-09-27 18:17:57

是否有可能让mvc框架在路由无法找到控制器后继续到下一个匹配路由?

我在数据库中有视图,但我希望在它在数据库中查找匹配视图之前有匹配实际控制器的路由。

我有这些路线。

        routes.MapRoute(
            "Default",
            "{controller}/{action}"
        );
        routes.MapRoute(
            "Content",
            "{*route}",
            new { controller = "Home", action = "Index" }
        );

如果"Default"路由找不到控制器/动作,它能继续到下一个路由"Content"吗?

欢呼,里克。

c# MVC在路由失败后继续使用路由

MVC路由通过将URL匹配到路由值来工作,因此只要模式匹配,它就会尝试使用该路由,无论是否存在与URL匹配的实际控制器/操作对。为了做到这一点,你可以在OnActionExecute中放一些东西去评估控制器动作名称,如果它不匹配数据库然后在默认路由上做一个忽略路由。我会添加一个不同的路由,这是你想要匹配的模式,并使用它而不是默认路由,并将你的默认路由放在列表的底部,这样它就可以像预期的那样成为你的全部掉落路径。