0

私はモデル MyModel を持っています

public class MyModel { [UIHint("Str")] public string Name {get;set;} }

ビューでは、使用してモデルをレンダリングしています

@Html.DisplayForModel("SomeTemplate")

したがって、モデルは DisplayTemplate として SomeTemplate を使用しています。

そのため、UIHint は SomeTemplate でレンダリングされていません。

別の DisplayTemplate で UIHint をレンダリングする解決策はありますか、それともまったく不可能ですか?

4

1 に答える 1

1

コードに矛盾があります。

最初に、UIHint を使用して表示テンプレートの名前を定義し、特定のプロパティをレンダリングします。レンダリングされた出力に文字列を追加するのではありません。

第 2 に、DisplayForModel のパラメーターは表示テンプレートの名前ではありません (モデルの名前による規則に基づいて自動的に選択されるか、UIHint を使用して定義されます)。

モデル クラスの名前が MyClass であると仮定すると、

  1. DisplayTemplates フォルダーの下に MyClass.cshtml という名前の表示テンプレートを作成します。

  2. テンプレート内に「Str」を追加します

  3. パラメーターなしで DisplayForModel を呼び出します (現在のビューのモデルが同じ MyClass である場合)

私が何かを誤解している場合は、それを指摘してください

于 2015-02-16T09:29:31.123 に答える