我用Google搜索过多次这个问题。但我找不到任何解决办法。
我想创建一个带有默认DataType
和EditorTemplate
的自定义DisplayTemplate
,以便在 mvc3 razor 中使用。
模型
[DataType("MyCustomDataType")]
public MyType Property { get; set; }
// I mean by MyType any type of data: string, int, datetime and so on
查看 - Razor
@Html.DisplayFor(m => m.Property)
//or
@Html.EditorFor(m => m.Property)
实际上我想用默认的editor-template和display-template创建一个可重用的数据类型。
你有什么建议吗?你能给我一个有用的链接吗?如果可以的话,请给我一个简单的例子吗?提前谢谢。
答案 0 :(得分:2)
this是自定义编辑器/显示模板的优秀教程。虽然它不是剃刀语法,但它很容易转换。
如果要根据Datatype
属性创建编辑器模板,可以使用ViewData.ModelMetadata.AdditionalValues["DataTypeAttribute"]
如果值是您的自定义数据类型值,请执行您想要的操作。否则,请执行默认设置。
不确定这是不是一个好主意。但它应该有用。
答案 1 :(得分:0)
您可以创建一个新类型,即您可以包含在发送到视图的模型中的Person类。即Model.Person。
通过定义名为Person的新EditorTemplate和DisplayTemplate。默认情况下,调用@ Html.EditorTemplateFor(x => x.Person);将为该类型寻找EditorTemplate。
上的以下stackoverflow帖子