缺少MVC3中不存在的引用

时间:2013-04-30 18:08:37

标签: .net asp.net-mvc-3 entity-framework using dependency-management

我将我的主要ASP.net MVC3应用程序中的模型分离到一个类库中,该库与我的项目的解决方案相同,并被引用到我的项目中。

这个类库中的模型(我将模型文件夹复制到类库中)表示system.web.MVC.Security甚至System.Component.DataAnnotations之类的内容不存在。< / p>

所以我假设我可以右键单击引用并单击“添加引用”并找到那些.net库但是它们不存在。

那么如何将它们包含在内呢?所以我可以使用Data annotations,Security和(显然)MVC?

2 个答案:

答案 0 :(得分:0)

看起来您没有安装ASP.NET MVC框架。如果你安装了它们,它们应该出现在你的“参考资源管理器”从它的dll中拉出来的GAC(全局程序集缓存)中。您可以通过C:\ Windows \ Assembly。

访问gac

答案 1 :(得分:0)

我正在研究MVC3项目,我们已经创建了我们的项目架构来维护我们的类:

  1. 模型类在MVC项目中处于默认位置。
  2. 我们添加了新项目Entity,其中包含与数据库字段(列)名称匹配的属性。
  3. (以后的数据访问)DAL和(业务访问层)BAL。
  4. 的单独项目

    现在一切如何运作:

    模型类包含映射Entity项目中属性的属性,以及我们在开发过程中需要的一些额外属性,作为例如辅助属性。 SubmissionType属性,用于检查我们使用相同的帖子方法(如保存,更新或删除)进行的提交类型。

    实体项目将仅包含映射数据库中列名的属性,BAL将与实体项目类交互以获取或分配需要数据库操作的值。

    Entity项目中的类将获取或从Model类中分配值。这都是因为我们的主项目可以参考实体和BA​​L项目,但反之亦然。

    好了,问题是这些映射将如何完成?我的意思是从Model到Entity类分配值,反之亦然。 为此,我们需要在项目“Omu.ValueInjecter”中添加一个dll。您可以从here下载。只需要在我们的应用程序中添加它,它将只需要在一行中映射事物:

          EmployeeEntities entity = new EmployeeEntities();
          entity.InjectFrom(model);
    

    这里我将模型中的值从post方法中分配给实体。现在,此实体对象将传递给BAL,并从BAL传递到DAL。 通过实施此解决方案,您甚至无需从项目外部移动模型,这是一个痛苦的尝试。

    希望此解决方案能为您提供帮助