web-dev-qa-db-ja.com

MVCのUIHint属性

MVCでのUIHint属性の使用とは誰でも私にそれを使用する方法とそれが何をするかの簡単な例を提供してくれますか?.

24
user1030181

DisplayまたはEditorテンプレートを使用する場合、UIHintは使用するテンプレートを通知します。

[UIHint("SomeTemplate")]
public class MyViewModel
{
     public string SomeProperty { get; set; }
}

Views/Shared/DisplayTemplatesまたはViews/{Controller}/DisplayTemplatesでSomeTemplate.ascxという名前のDisplayテンプレートを作成すると(MVC2であるため)、テンプレートは次のように使用されます。

@Html.DisplayForModel() // if Model is MyViewModel

または

@Html.DisplayFor(m => m.ModelProperty) // if ModelProperty is of type MyViewModel

編集
これをプロパティレベルで指定する場合:

public class MyViewModel
{
    [UIHint("Birthday")]
    public DateTime DateOfBirth { get; set; }
}

/ Views/Sharedまたは/ Views/{Controller}のいずれかのDisplayTemplatesまたはEditorTemplatesフォルダーに、Birthdayというディスプレイ/エディターテンプレートを作成できます。その後、あなたがするとき:

@Html.DisplayFor(m => m.DateOfBirth)

または

@Html.EditorFor(m => m.DateOfBirth)

UIHintで指定されたテンプレートを使用します

37
Dismissile

UIHintは、Dismissile状態のクラス宣言ではなく、プロパティでのみ使用できます。 MVC3を使用しているため、MVC2から変更されている可能性があります。

「属性 'UIHint'はこの宣言タイプでは無効です。 'プロパティ、インデクサー、フィールド'宣言でのみ有効です」

16
Ant