基本types的ASP.NET MVC 4编辑器模板

我已经创build了一个数字input模板,如果我这样做

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

它工作正常,模板使用。

但是,这是行不通的:

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

为什么我需要为基本types指定编辑器模板的名称?

编辑器模板按照惯例工作。 模板的名称必须与types的名称相匹配。 例如,如果SomeValue是一个inttypes,你可以在~/Views/Shared/EditorTemplates/Int32.cshtml上写一个自定义的编辑器模板,它将被使用。 在这种情况下,当您编写@Html.EditorFor(model => model.SomeValue)时,所有整数types将使用此自定义模板。

如果你不想覆盖整个types的所有模板,你可以写一个特定的命名模板~/Views/Shared/EditorTemplates/Number.cshtml ,你可以通过指定这个模板名作为编辑器的第二个参数帮手: @Html.EditorFor(model => model.SomeValue, "Number")或者用[UIHint]属性装饰视图模型属性:

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

然后简单地使用@Html.EditorFor(model => model.SomeValue)将呈现Number.cshtml自定义模板。

我还build议您阅读Brad Wilson的blog post了解ASP.NET MVC中的默认模板。

在您的编辑器模板中,您必须具有相同的types示例:

model.SomeValue是loremIpsumObject的types

在你的EditorTemplate中:

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

你可以在这里find一个datetime的例子

它可以帮助你?