这是我的场景。我在不同的 MVC 项目中有两个同名的控制器。每个控制器可以包含相同的动作(相同的名称),但也可以包含不同的动作(未在另一个控制器中指定)。我已经注册了两条路线,每条路线都有自己的命名空间。
当我浏览到“Controller/Action1”页面时,这没问题。当我浏览到“Controller/ActionInSecondController”(该操作不在第一个控制器中)时,它会抛出 404。
是否有可能以及如何调用第二个控制器的操作方法?
(注意:我添加了一个引用的第二个项目,它的 dll 被编译到同一个 bin 文件夹位置)。
我的路线定义:
routes.MapRoute(
name: "Default1",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[]{ "Site1.Controllers" }
);
routes.MapRoute(
name: "Default2",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[]{ "Site2.Controllers" }
);