-1

エディタテンプレートを使用して、viewModelのビューにHtml.EditorFor(property)を作成しています。「@Html.EditorFor(property)」を含む別の.cshtmlファイルがあります。

ここで、viewModelのプロパティの値に応じて、代わりにDisplayForを表示する必要があります。

EditorTemplateに条件付きロジックを追加してこれを実行しようとしましたが、そこからviewModelのプロパティにアクセスできないようです(エディターテンプレートは@viewModelではなく@ model.someOtherModelを使用しているため)。だから私が次のようなことを言うことができれば

// Razor
if(true)
{ EditorFor(property) }
else {DisplayFor(property)}

私のviewModelのビューでは、それは機能します。エディターテンプレートを定義したのと同じように、オブジェクトの「表示テンプレート」を定義する方法がわかりません。

別の解決策は、エディターテンプレートからviewModelデータにアクセスすることかもしれません...これは可能ですか?

4

1 に答える 1

1

Razorでは、次の構文のようなものを使用する必要があります。

@if (condition) {
   @Html.EditorFor(modelItem => model.property)
} else {
   @Html.DisplayFor(modelItem => model.property)
}

共有できる特定のエラーが発生していますか?

于 2013-03-06T22:12:11.007 に答える