23

MVC での UIHint 属性の使用とは。誰かがそれを使用する方法とそれが何をするかの簡単な例を教えてください.

4

2 に答える 2

37

ディスプレイまたはエディターテンプレートを使用する場合、UIHintは使用するテンプレートを指示します。

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

Views / Shared/DisplayTemplatesまたはViews/{Controller} / DisplayTemplatesにSomeTemplate.ascx(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で指定されたテンプレートを使用します

于 2011-11-09T19:05:19.897 に答える
15

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

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

于 2013-01-04T09:25:50.230 に答える