C# 如何在另一个项目的界面中引用ViewModels(在单独的Web项目中)?

C# 如何在另一个项目的界面中引用ViewModels(在单独的Web项目中)?,c#,asp.net-mvc,dependency-injection,interface,controller,C#,Asp.net Mvc,Dependency Injection,Interface,Controller,我正在为控制器创建一个接口,该接口处理各种表单提交方法,这些方法都使用特定的ViewModels作为参数。我的目标是使用依赖注入(DI)将接口传递到另一个控制器,该控制器需要从接口执行其中一个方法 当界面放置在Web项目中时,界面和控制器工作正常,但是一旦我将界面移动到Interfaces项目中,对ViewModels的引用就中断了,我无法确定如何解决它们 我可以用它直接调用该方法,而不必使用DI路径,但是我们站点的其余部分使用DI,我不想打破这种模式: var controller = De

我正在为控制器创建一个接口,该接口处理各种表单提交方法,这些方法都使用特定的ViewModels作为参数。我的目标是使用依赖注入(DI)将接口传递到另一个控制器,该控制器需要从接口执行其中一个方法

当界面放置在Web项目中时,界面和控制器工作正常,但是一旦我将界面移动到Interfaces项目中,对ViewModels的引用就中断了,我无法确定如何解决它们

我可以用它直接调用该方法,而不必使用DI路径,但是我们站点的其余部分使用DI,我不想打破这种模式:

var controller = DependencyResolver.Current.GetService<FormController>();
controller.SendForm(model);
var controller=DependencyResolver.Current.GetService();
controller.SendForm(模型);
我试过:

  • 将Web项目作为程序集引用添加到Interfaces项目中,但是这将创建循环引用(请告诉我)

  • 智能感知,没有建议

  • 添加Using指令,但Web项目不是可供选择的命名空间


这是4.6.1上的ASP.NET MVC站点。控制器位于Web项目下的控制器文件夹中。新界面位于同一解决方案中的一个单独的界面项目中。

将视图模型移动到自己的项目中,然后在界面和web项目中引用它。

将视图模型移动到自己的项目中,然后在界面和web项目中引用它,怎么样?听起来需要做更多的工作比我想做的还要多,因为我必须在Web项目中引用ViewModel时添加一个using everywhere,对吗?但这仍然是一个可靠的建议,如果这是最好的解决方案,我会认为这是正确的。感谢您的帮助。为什么必须在引用ViewModel的位置添加using语句?您的ViewModel是POCO吗?是的,它们是POCO。如果它们被移动到一个新的项目中(使用一个新的名称空间),那么我必须向引用原始Web项目中的ViewModel的每个文件添加一个Using指令。不是世界末日,而是不太理想,因为我们拥有大量的资源。@WebDevand,还有什么好的?如果引入USE解决了你的问题,那么这就是你必须做的吗?这怎么会不理想呢?