45

数値入力用のテンプレートを作成しました。

@Html.EditorFor(model => model.SomeValue, "Number")

それは正常に機能し、テンプレートが使用されます。

しかし、それはうまくいきません:

@Html.EditorFor(model => model.SomeValue)

基本タイプのエディター テンプレートの名前を指定する必要があるのはなぜですか?

4

2 に答える 2

93

エディター テンプレートは慣習に従って機能します。テンプレートの名前は、型の名前と一致する必要があります。たとえば、SomeValueが使用されるintカスタム エディタ テンプレートを作成できる型です~/Views/Shared/EditorTemplates/Int32.cshtml。この場合、すべての整数型は、書き込み時にこのカスタム テンプレートを使用します@Html.EditorFor(model => model.SomeValue)

整数型のすべてのテンプレートをオーバーライドしたくない場合は、このテンプレート名をヘルパー~/Views/Shared/EditorTemplates/Number.cshtmlの 2 番目の引数として指定するか、属性でビュー モデル プロパティを装飾することにより、一部のプロパティにのみ使用できる特定の名前付きテンプレートを作成できます。 :EditorFor@Html.EditorFor(model => model.SomeValue, "Number")[UIHint]

[UIHint("Number")]
public int SomeValue { get; set; }

を使用すると、カスタム テンプレート@Html.EditorFor(model => model.SomeValue)がレンダリングされます。Number.cshtml

blog postまた、ASP.NET MVC の既定のテンプレートに関するBrad Wilson の記事もお読みになることをお勧めします。

于 2013-02-02T22:49:31.730 に答える
1

Editor Template には、同じタイプの Example が必要です。

model.SomeValue は loremIpsumObject の型です

EditorTemplate では、次のようになります。

  @model YourNamespaceWhereIsYourClass.loremIpsumObject
  ...And your code in your editorTemplate....

ここでdatetimeの例を見つけることができます

それはあなたを助けますか?

于 2013-02-02T15:34:54.197 に答える