2011-01-19 9 views
5

Czuję, że brakuje mi czegoś podstawowego.Właściwość interfejsu głównego jest niedostępna poprzez interfejs nadrzędny w helperie Html

Mam 2 interfejsy. Jeden nazywa się IIdentifiable, który określa istnienie właściwości Id. Drugim naprawdę może być wszystko, co jest również możliwe do zidentyfikowania. Zobacz kod poniżej.

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

Problem:

Podczas korzystania z Html.HiddenFor (lub jakakolwiek inna metoda pomocnika) oraz modelu jest silnie wpisany do interfejsu IPerson, pojawia się błąd podczas uzyskiwania dostępu do właściwości Interfejs IIdentyfikowalny. Mogę uzyskiwać dostęp i wyświetlać dane w właściwościach możliwych do zidentyfikowania przez bezpośrednie przejście do pliku Model.Id, ale nie w przypadku użycia wyrażenia lambda i uzyskania dostępu do modelu w ten sposób.

Pojawia się błąd "Właściwość * .IPerson.Id could not be found".

Wydaje się, że jest tak tylko w przypadku korzystania z mechanizmu wyświetlania maszyn Razor. Wiem, że to działa przy użyciu ASP.NET MVC 2 i mechanizmu widoku WebForms. Nie próbowałem go na ASP.NET MVC 3 przy użyciu silnika widoku WebForms jeszcze.

Odpowiedz

2

Tak, I have brought this na uwagę firmy Microsoft, otwierając bilet. Zobacz także this related question.

+0

Dzięki! Szukałem SO, ale nigdy ich nie spotkałem. Zamierzałem zagłębić się w źródło, jeśli nie otrzymam odpowiedzi. Doceniam to. Teraz pozwala mieć nadzieję na adresy Microsoft, które wystawia. –

0

Zawsze czuję się mniej szalony, gdy inni ludzie mają takie same problemy jak ja. Jak ktoś powiedział w linku podanym przez Darina, jest to dzieło dookoła lub teraz:

<%: Html.HiddenFor(m => (m as IIdentifiable).Id) %> 
Powiązane problemy