如果我建立了一个包含许多控制器和视图的项目,该如何在ASP.NET Core的另一个项目中使用它们?我尝试引用该项目,但是当我在以前的项目中使用视图时,它只会返回NOT FOUND。
答案 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存在于标准位置。
关于这是否可取,我认为绝对是。我创建了一些常见的帐户管理逻辑,希望在项目之间共享这些逻辑,否则这些项目将具有非常不同的业务逻辑。因此,我共享我的“帐户”和“管理员”控制器,但其他控制器专用于各自的项目。