2012-03-06 62 views
0

我试图将我的模型移动到ASP.NET MVC 3应用程序中的单独项目中。一切都很好地工作一个文件的例外,我得到的错误 - (?是否缺少using指令或程序集引用)将模型移动到单独项目中

类型或命名空间名称“比较”找不到 类型或命名空间名称“CompareAttribute”找不到(是否缺少using指令或程序集引用?)

在新项目中的引用是完全一样的,在原来的MVC项目的引用,但这个时文件被移动到新的项目,它给出了上述错误。

任何想法我失踪?

+1

我认为这是在'System.Web.Mvc'(装配/ DLL),虽然它种好像它在'System.ComponentModel.DataAnnotations'。事情是,你可能不希望在你的模型类中引用'System.Web.Mvc'(不是说你应该也不应该,只是你可能不愿意)。 – 2012-03-06 16:58:15

+1

为什么哦,你为什么需要将你的模型移动到一个单独的项目?你这样做会得到什么? – Oded 2012-03-06 16:59:49

+1

我曾在有Web项目和MobileWeb项目的情况下看过它。这两个项目都为业务逻辑等创建了相同的DLL。 – 2012-03-06 17:11:59

回答

1

CompareAttribute这个类是System.Web.Mvc命名空间的一部分。请确保您有一个组件,在项目中引用(解决方案资源管理 - >参考),并确保您有:

using System.Web.Mvc; 

在源文件的顶部。

MSDN Reference on the CompareAttribute Class

命名空间:System.Web.Mvc
大会:System.Web.Mvc(在System.Web.Mvc.dll程序)

+0

这是奇怪的事情。我将程序集作为我的模型项目和常规MVC项目中的参考。我在源文件中也有using语句。当我在MVC项目的m,odels文件夹中有文件时,它会工作,但是当我将它移动到模型项目时,它会出错。 – 2012-03-07 09:15:47

+0

我现在正在工作。我删除了模型项目中对System.Web.Mvc的引用,然后再次读取它。 – 2012-03-07 09:40:06

0

当添加到参考组件/名称空间,可以扩展或调整“添加引用”窗口的大小以查看所有附加列信息,例如版本,运行时和路径。针对上述情况,您可能在MVC 3之前引用了System.Web.Mvc,其中没有引入CompareAttribute。

尝试对组件名称列进行排序,并检查具有不同版本,运行时和路径值的重复条目。如果您安装了多个.NET Framework,则情况可能如此。确保你选择了支持你需要的正确版本。在这种情况下,选择System.Web.Mvc 3.0.0.0或更高版本将包含您之前的CompareAttribute。

亲切的问候

相关问题