如何在ASP.NET Core的另一个项目中使用控制器和视图

时间:2019-03-01 08:16:57

标签: asp.net-core-mvc

如果我建立了一个包含许多控制器和视图的项目,该如何在ASP.NET Core的另一个项目中使用它们?我尝试引用该项目,但是当我在以前的项目中使用视图时,它只会返回NOT FOUND。

1 个答案:

答案 0 :(得分:0)

虽然创建自己的ControllerFactory是合理的,但我发现在每个项目中定义所有Controller更为方便,但可以从Shared项目中的Controller派生它们:

namespace MyProject1.Controllers
{
   public class MyController : MySharedProject.Controllers.MyController
   {
      // nothing much to do here...
   }
}

namespace MySharedProject.Controllers
{
   public abstract class MyController :  Microsoft.AspNetCore.Mvc.Controller
   {
      // all (or most) of my controller logic here...
   }
}

这还有一个好处,就是您可以放置​​一个控制器逻辑,该逻辑因项目而异。而且,其他开发人员更容易快速找到您的Controller逻辑,因为Controllers存在于标准位置。

关于这是否可取,我认为绝对是。我创建了一些常见的帐户管理逻辑,希望在项目之间共享这些逻辑,否则这些项目将具有非常不同的业务逻辑。因此,我共享我的“帐户”和“管理员”控制器,但其他控制器专用于各自的项目。