2011-01-19 8 views
5

ここで基本的なものが不足しているような気がします。Htmlヘルパーの親インターフェイス経由でルートインターフェイスのプロパティにアクセスできない

私は2つのインターフェースを持っています。 1つはIIdentifiableと呼ばれ、Idプロパティの存在を指定します。第二のものは、本当に識別可能なものでもあります。以下のコードを参照してください。

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

問題:のプロパティにアクセスするとき

Html.HiddenFor(または任意の他のヘルパーメソッド)とモデルを使用して強くIPersonインターフェイスに型付けされたが、私はエラーを取得しますIIdentifiableインタフェース。ラムダ式を使用してモデルにそのようにアクセスするときには、Model.Idに対して直接行って、IIdentifiableプロパティのデータにアクセスして表示することはできません。

エラーは「プロパティ* .IPerson.Idが見つかりませんでした」です。

これは、Razorビューエンジンを使用している場合にのみ当てはまります。私はこれがASP.NET MVC 2とWebFormsビューエンジンを使用して動作していたことを知っています。 WebFormsビューエンジンを使用してASP.NET MVC 3で試したことはありません。

答えて

2

はい、I have brought thisはい、チケットを開くことによってMicrosoftの注意を払ってください。また、this related questionを参照してください。

+0

ありがとう!私はこれらを探し求めましたが、決してそれらを見つけませんでした。私が答えを得なければ、今日の情報源に飛び込むつもりだった。感謝します。今すぐMicrosoftが彼の問題に取り組むことを希望する。 –

0

他の人が私と同じ問題を抱えていると、私はいつも気が遠くなりません。 Darinが提供したリンクで誰かが言ったように、これはまわりの仕事です:

<%: Html.HiddenFor(m => (m as IIdentifiable).Id) %> 
関連する問題