.net - 如何告诉 ASP.NET MVC 在库中查找 Controller ?

标签 .net asp.net asp.net-mvc .net-assembly

对于某些人来说,这肯定是一个微不足道的问题,但我还没有找到任何关于此的实际信息。

我有一个 ASP.NET MVC Web 应用程序。由于我喜欢编写可重用的代码,因此我想将 Controller 放入单独的库程序集中,并在多个 Web 应用程序中重用它们。

问题是,我如何告诉 ASP.NET MVC 它应该在其他程序集中查找 Controller 而不是 Web 应用程序本身?

最佳答案

您需要创建自己的ControllerFactory。

查看this链接

基本上,如上所述创建 ControllerFactory,然后在 Global.asax 中添加以下行:

ControllerBuilder.Current.SetControllerFactory(new YourFactory());

这告诉 ASP.NET MVC 使用您的 ControllerFactory。

最重要的是,当您定义路由时,您需要向 ASP.NET MVC 提供有关此程序集所在位置的“提示”:

yourRoute.DataTokens = new RouteValueDictionary(
    new
    {
         namespaces = new[] { "SomeAssembly.Controllers" }
    });

如果没有找到,则会在常规命名空间(Web 应用程序)中查找。

Here是另一个展示如何创建自定义 Controller 工厂的链接。

祝你好运!

关于.net - 如何告诉 ASP.NET MVC 在库中查找 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722708/

相关文章:

c# - asmx 返回值中的空属性

c# - ASP.NET MVC 传递 DateTime 来查看

asp.net-mvc - PagedList.MVC 中的 Ajax 分页使用部分页面

java - 为什么要启动 conhost.exe?

asp.net - 是否有与 ASP.NET 的 PrimeFaces 等效的东西?

c# - 如何使用 C# 淡入/淡出包含内容的面板

asp.net - 如何使用 dropdownlist 的 findbyvalue 返回 null

asp.net-mvc - 尝试使用 Linq 获取数据时出现错误 'cannot be initialized in a query result'

c# - 如何添加 System.Array 的 .Net C# 类扩展

c# - 项目之间的可访问性问题