【问题标题】:Use model of different project in the same solution在同一个解决方案中使用不同项目的模型
【发布时间】:2012-12-21 17:33:49
【问题描述】:

这可能是 here 发布的问题的重复,但我没有找到任何有效的答案。

假设我有 project1,它使用模型 model1。我在同一个解决方案中创建了一个新项目 project2,我想在 project2 的视图中使用 model1。 这可能吗?如何在 project2 的视图和控制器中调用此模型?

【问题讨论】:

  • 您希望两个项目之间的模型和控制器始终完全相同相同吗?
  • 请。我只想在一个项目中设置模型并使其在另一个项目中可用

标签: asp.net-mvc-3 view model controller


【解决方案1】:

为什么您不能将您的模型移动到您的两个客户项目都引用的第三类程序集中?这样,您的模型就真正定义了一次,并且可供两个项目使用。

按照 Erik 建议的方式进行操作会导致重复的源文件独立编译到每个项目中,而不是基于引用的程序集真正共享相同的代码库。

【讨论】:

  • 您能解释一下您所说的“三级组装”是什么意思吗?是否应该在任一项目中创建此类?
  • 在您的解决方案中,您将定义 3 个项目。 2 将是您的最终网站,然后第三个项目将只是一个“类库”,其中包含要用作模型的普通 POCO 对象。然后,您的两个 Web 项目都将引用此类库并使用该命名空间中的模型。
  • 那么在创建“类库”类型的项目之后,我是否提前在其中创建新的类作为模型?以及如何在我的项目 1 和 2 中引用这些模型?
  • 是的,您的模型将存在于类库项目中,而不是 Web 项目中。然后从您的每个 Web 项目中,将项目引用添加回模型程序集。可以在 MSDN 上找到这方面的详细信息:msdn.microsoft.com/en-us/library/7314433t(v=vs.90).aspx
  • 谢谢。还有一个问题。是否可以在库中建立数据库连接?
【解决方案2】:

我不完全确定您要分享的模型的用途(如果您能提供更多关于如何使用它的详细信息,那就太好了),但只分享您可以创建的模型在您的项目 1 和 2 所在的同一解决方案中创建一个名为 SharedModels 的新项目,然后在这两个项目中引用 SharedModels 项目。

【讨论】:

  • 但是我该如何做引用呢?
  • 在想要引用的项目中右键References -> Add Reference... -> 选择左侧Solution下的Project -> 选择普通项目
  • 说我在新项目中的模型名称是model1。在按照您的建议进行操作后,我认为如何引用它?
  • 就像您在任何情况下为视图指定模型一样...@model [namespace].[model name]。不过,事情就是这样。你问的是非常罕见的,我从来没有做过那样的事情。很有可能,无论你在做什么,你都做错了。我建议你从描述你实际想要完成的事情开始。
  • 我有几个项目使用相同的模型,我不想每次都重新创建模型,而只是链接到一个主模型。模型还需要连接到数据库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多