2

我正在尝试在安装了 Windows Server 2012 RC 的服务器上的 TeamCity 上构建 MVC 项目。

我收到以下错误。它看起来像是与 MVC 版本的某种冲突,如果我在谷歌搜索时发现了这种冲突。我正在按版本明确引用 system.web.mvc 等,所以我不知道问题是什么。有任何想法吗?

Models\AccountModels.cs(26, 10): error CS0246: The type or namespace name 'Compare' could not be found (are you missing a using directive or an assembly reference?) 
Models\AccountModels.cs(26, 10): error CS0104: 'CompareAttribute' is an ambiguous reference between 'System.ComponentModel.DataAnnotations.CompareAttribute' and 'System.Web.Mvc.CompareAttribute' 
Models\AccountModels.cs(64, 10): error CS0246: The type or namespace name 'Compare' could not be found (are you missing a using directive or an assembly reference?) 
Models\AccountModels.cs(64, 10): error CS0104: 'CompareAttribute' is an ambiguous reference between 'System.ComponentModel.DataAnnotations.CompareAttribute' and 'System.Web.Mvc.CompareAttribute' 
4

4 回答 4

10

您必须在Compare属性中明确指定命名空间,例如

[System.Web.Mvc.Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]

代替

[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
于 2012-07-13T03:52:18.313 回答
0

我将我的站点从 MVC Framework 4 更新到 4.5.1,并且(在使用 NuGet 命令行更新各种库之后)我收到了同样的错误。我已经调用了命名空间'using System.Web.Mvc;' 在我的 .cs 文件的顶部。只有当我使用完整路径“System.Web.Mvc.Compare”时才有效。

于 2014-03-05T15:26:22.700 回答
0

从标头中删除 using System.Web.Mvc

于 2015-06-19T07:25:01.240 回答
-1

您还可以添加:

using System.Web.Mvc;

在 .cs 文件的顶部

于 2012-08-08T14:26:36.087 回答