我试图将我的模型移动到ASP.NET MVC 3应用程序中的单独项目中。一切都很好地工作一个文件的例外,我得到的错误 - (?是否缺少using指令或程序集引用)将模型移动到单独项目中
类型或命名空间名称“比较”找不到 类型或命名空间名称“CompareAttribute”找不到(是否缺少using指令或程序集引用?)
在新项目中的引用是完全一样的,在原来的MVC项目的引用,但这个时文件被移动到新的项目,它给出了上述错误。
任何想法我失踪?
我试图将我的模型移动到ASP.NET MVC 3应用程序中的单独项目中。一切都很好地工作一个文件的例外,我得到的错误 - (?是否缺少using指令或程序集引用)将模型移动到单独项目中
类型或命名空间名称“比较”找不到 类型或命名空间名称“CompareAttribute”找不到(是否缺少using指令或程序集引用?)
在新项目中的引用是完全一样的,在原来的MVC项目的引用,但这个时文件被移动到新的项目,它给出了上述错误。
任何想法我失踪?
CompareAttribute
这个类是System.Web.Mvc
命名空间的一部分。请确保您有一个组件,在项目中引用(解决方案资源管理 - >参考),并确保您有:
using System.Web.Mvc;
在源文件的顶部。
MSDN Reference on the CompareAttribute
Class:
命名空间:System.Web.Mvc
大会:System.Web.Mvc(在System.Web.Mvc.dll程序)
这是奇怪的事情。我将程序集作为我的模型项目和常规MVC项目中的参考。我在源文件中也有using语句。当我在MVC项目的m,odels文件夹中有文件时,它会工作,但是当我将它移动到模型项目时,它会出错。 – 2012-03-07 09:15:47
我现在正在工作。我删除了模型项目中对System.Web.Mvc的引用,然后再次读取它。 – 2012-03-07 09:40:06
当添加到参考组件/名称空间,可以扩展或调整“添加引用”窗口的大小以查看所有附加列信息,例如版本,运行时和路径。针对上述情况,您可能在MVC 3之前引用了System.Web.Mvc,其中没有引入CompareAttribute。
尝试对组件名称列进行排序,并检查具有不同版本,运行时和路径值的重复条目。如果您安装了多个.NET Framework,则情况可能如此。确保你选择了支持你需要的正确版本。在这种情况下,选择System.Web.Mvc 3.0.0.0或更高版本将包含您之前的CompareAttribute。
亲切的问候
我认为这是在'System.Web.Mvc'(装配/ DLL),虽然它种好像它在'System.ComponentModel.DataAnnotations'。事情是,你可能不希望在你的模型类中引用'System.Web.Mvc'(不是说你应该也不应该,只是你可能不愿意)。 – 2012-03-06 16:58:15
为什么哦,你为什么需要将你的模型移动到一个单独的项目?你这样做会得到什么? – Oded 2012-03-06 16:59:49
我曾在有Web项目和MobileWeb项目的情况下看过它。这两个项目都为业务逻辑等创建了相同的DLL。 – 2012-03-06 17:11:59