数値入力用のテンプレートを作成しました。
@Html.EditorFor(model => model.SomeValue, "Number")
それは正常に機能し、テンプレートが使用されます。
しかし、それはうまくいきません:
@Html.EditorFor(model => model.SomeValue)
基本タイプのエディター テンプレートの名前を指定する必要があるのはなぜですか?
数値入力用のテンプレートを作成しました。
@Html.EditorFor(model => model.SomeValue, "Number")
それは正常に機能し、テンプレートが使用されます。
しかし、それはうまくいきません:
@Html.EditorFor(model => model.SomeValue)
基本タイプのエディター テンプレートの名前を指定する必要があるのはなぜですか?
エディター テンプレートは慣習に従って機能します。テンプレートの名前は、型の名前と一致する必要があります。たとえば、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 の記事もお読みになることをお勧めします。
Editor Template には、同じタイプの Example が必要です。
model.SomeValue は loremIpsumObject の型です
EditorTemplate では、次のようになります。
@model YourNamespaceWhereIsYourClass.loremIpsumObject
...And your code in your editorTemplate....
ここでdatetimeの例を見つけることができます
それはあなたを助けますか?