2013-02-19 70 views
6

我收到以下错误在我的编辑模板,ApplicantAddressMode为什么我在解决方案中看不到任何类型的类型不匹配错误?

错误CS0019:运算符“!=”不能应用于类型 “Comair.RI.ViewModels.ApplicantAddressType”和 的操作数“Comair.RI.Models.ApplicantTypesOfAddress”“}

类型Comair.RI.ViewModels.ApplicantAddressType是无处可寻。全球性解决方案搜索只是ApplicantAddressType也不返回结果的所有文件。我在Comair.RI.Models改变了枚举的名称从ApplicantAddressTypeApplicantTypesOfAddress,以尽量避免无意的比赛,并清除掉了32位和64位临时ASP Internet Files文件,然而错误仍然存​​在在这条线的编辑模板:

@using Comair.RI.Models 
@model Comair.RI.ViewModels.ApplicantAddressModel 
@Html.ValidationSummary(true) 
<fieldset> 
    <legend>@Model.AddressTypeDescription</legend> 
    <ul class="form-column"> 
     @if (Model.AddressType != ApplicantTypesOfAddress.Residential) 
     { 

Model.AddressType声明为:

[ScaffoldColumn(false)] 
public ApplicantTypesOfAddress AddressType { get; set; } 

我在我束手无策即将开始扔炽盛,围绕尖旗,像IsResidentialStreetNumberIsPostalSuburb。我不认为救护车会在那之后很久抵达,并带我走向和平。

枚举声明是这样的:

namespace Comair.RI.Models 
{ 
    public enum ApplicantTypesOfAddress 
    { 
     Residential, 
     Postal 
    } 
} 
+0

你能告诉我们你如何定义'ApplicantTypesOfAddress'吗?这只是一个普通的枚举吗? – 2013-02-19 14:30:49

+1

你的类型看起来像他们跨越组件。 Model有没有机会陈旧?你提到你清理了,但这是我能想到的唯一合乎逻辑的解释。 – Jon 2013-02-19 14:32:37

+0

'!Model.AddressType.Equals(ApplicantTypesOfAddress.Residential)'工作吗? – IronMan84 2013-02-19 14:35:38

回答

2

是被怀疑失踪不包括在项目中的文件被宣布为TPE。当您告诉VS在编译时构建视图时,通常只在渲染之前进行视图,而不是在构建应用程序集合时创建视图,而是构建所有视图并使用它们引用的任何文件,无论它们是否包含在项目中。

Jim Lamb对如何做到这一点叫Turn on Compile-time View Checking for ASP.NET MVC Projects in TFS Build 2010

我不知道该TFS构建一部分,尽管好的帖子。我不使用它,在我的情况下简单地添加下面的元素到我的.csproj文件做了伎俩。请注意,如果MvcBuildViews元素已存在,则其文本值必须为为true。

<PropertyGroup> 
    <MvcBuildViews>true</MvcBuildViews> 
</PropertyGroup> 

买者自负。