路由未定义的控制器

本文关键字:控制器 未定义 路由 | 更新日期: 2023-09-27 18:29:31

如何在ASP.NET MVC中设置路由,以便将具有未定义控制器的路径路由到特定控制器。

例如,我有一个UserController,所以我想要http://example.com/user路由到UserController,但我希望http://example.com/supercoolproject路由到ProjectController以查找Super Cool Project项目

路由未定义的控制器

我认为您不应该使用http://example.com/supercoolproject住址相反,它应该http://example.com/project/supercool,但如果您想在中使用地址http://example.com/{projectname}project格式,您可以在global.asax中定义规则,如下所示:

routes.MapRoute(
    "ProductByNameRule",
    "{projectName}project",
    new { controller = "Project", action = "ByName" }
);

并具有

public ActionResult ByName(string projectName) {
}

在CCD_ 1中。

您可以创建一个自定义控制器工厂来完成此操作。

http://keyvan.io/custom-controller-factory-in-asp-net-mvc

在自定义控制器工厂的IControllerFactory实现的CreateController方法中,首先尝试使用DefaultControllerFactory创建控制器,然后如果失败,则创建回退控制器的实例并返回它。