2013-02-19 5 views
6

Sto ottenendo il seguente errore in un editor di modelli di mine, ApplicantAddressMode:Perché ricevo un errore di mancata corrispondenza di tipo con un tipo che non riesco a vedere da nessuna parte nella mia soluzione?

errore CS0019: Operatore '! =' Non può essere applicato a operandi di tipo 'Comair.RI.ViewModels.ApplicantAddressType' e 'Comair.RI.Models.ApplicantTypesOfAddress' "}

il tipo Comair.RI.ViewModels.ApplicantAddressType è introvabile. Una ricerca soluzione globale di tutti i file per solo i ApplicantAddressType prodotto alcun risultato. ho cambiato il nome della enum in Comair.RI.Models da ApplicantAddressType a ApplicantTypesOfAddress per cercare di evitare delle partite non intenzionale, e ripulito sia Temporary ASP Internet Files 32 bit e 64 bit, e tuttavia l'errore persiste su questa linea del modello Editor:

@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 è dichiarato come:

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

io sono al mio ingegno finiscono per iniziare a gettare fiammeggiante, rilevare bandiere intorno, come IsResidentialStreetNumber e IsPostalSuburb. Non penso che le ambulanze arriveranno molto dopo e mi porteranno via in pace.

La dichiarazione enum è come questo:

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

Puoi mostrarci come si definisce 'ApplicantTypesOfAddress'? E 'solo un normale enum? –

+1

I tuoi tipi sembrano come si estendono su assiemi. C'è una possibilità che l'assemblaggio di "Modello" sia stantio? Mi hai detto che hai ripulito, ma questa è l'unica spiegazione logica che riesco a pensare. – Jon

+0

'' Model.AddressType.Equals (ApplicantTypesOfAddress.Residential) 'funziona? – IronMan84

risposta

2

TPE che è stato sospettato mancante è stato dichiarato in un file non incluso nel progetto. Quando si dice a VS di creare una vista in fase di compilazione, che in genere fa solo prima di renderli, non quando crea l'assembly dell'applicazione, crea tutte le viste e usa tutti i file a cui si riferiscono se sono inclusi nel progetto o no .

Jim Lamb ha un buon post su come fare questo chiamato Turn on Compile-time View Checking for ASP.NET MVC Projects in TFS Build 2010

Non so circa il TFS Costruire parte però. Io non lo uso, nel mio caso semplicemente aggiungendo il seguente elemento al mio file .csproj ha fatto il trucco. Nota: se l'elemento MvcBuildViews esiste già, il suo valore di testo deve essere true.

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

Caveat Emptor.

Problemi correlati