2013-02-19 80 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> 

買者自負。