2011-01-19 2 views
5

Mi sento come se mi mancasse qualcosa di base qui.Proprietà di interfaccia root non accessibile tramite l'interfaccia padre in helper HTML

Ho 2 interfacce. Uno è chiamato IIdentifiable che specifica l'esistenza di una proprietà Id. Il secondo può essere davvero tutto ciò che è anche identificabile. Vedi il codice qui sotto.

public interface IIdentifiable 
{ 
    Guid Id { get; set; } 
} 
public interface IPerson : IIdentifiable 
{ 
    string Name { get; set; } 
} 

Il problema:

Quando si utilizza il Html.HiddenFor (o qualsiasi altro metodo di supporto) e il modello è fortemente tipizzato all'interfaccia IPerson, ottengo un errore quando si accede alle proprietà della Interfaccia IIdentifiable. Posso accedere e visualizzare i dati nelle proprietà IIdentifiable andando direttamente contro Model.Id ma non quando si utilizza l'espressione lambda e si accede al modello in questo modo.

L'errore che ottengo è "La proprietà * .IPerson.Id non è stata trovata".

Questo sembra essere il caso solo quando si utilizza il motore di visualizzazione Razor. So che questo funzionava usando ASP.NET MVC 2 e il motore di visualizzazione WebForms. Non l'ho ancora provato su ASP.NET MVC 3 usando ancora il motore di visualizzazione WebForms.

risposta

2

Sì, I have brought this all'attenzione di Microsoft aprendo un ticket. Vedi anche this related question.

+0

Grazie! Ho cercato SO per questi, ma non li ho mai incontrati. Oggi mi sarei immerso nella fonte se non avessi avuto una risposta. Apprezzalo. Ora lascia sperare gli indirizzi Microsoft che emette. –

0

Mi sento sempre meno pazzo quando gli altri hanno gli stessi problemi che faccio. Come qualcuno ha detto nel collegamento fornito da Darin, questo è un problema o adesso:

<%: Html.HiddenFor(m => (m as IIdentifiable).Id) %> 
Problemi correlati