1

我用谷歌搜索这个问题太多次了。但我找不到任何解决方案来做到这一点。

我想创建一个DataType具有默认值的自定义EditorTemplateDisplayTemplate用于mvc3 razor

模型

[DataType("MyCustomDataType")]
public MyType Property { get; set; }
// I mean by MyType any type of data: string, int, datetime and so on

查看 - 剃刀

@Html.DisplayFor(m => m.Property)
//or
@Html.EditorFor(m => m.Property)

实际上我想用默认的编辑器模板和显示模板创建一个可重用的数据类型。

请问您有什么建议吗?你能给我一个有用的链接,或者如果可以的话,请给我一个简单的例子?提前致谢。

4

2 回答 2

2

是自定义编辑器/显示模板的优秀教程。虽然它不是剃刀语法,但它很容易转换。

如果要根据Datatype属性创建编辑器模板,可以使用获取属性值ViewData.ModelMetadata.AdditionalValues["DataTypeAttribute"]

如果该值是您的自定义数据类型值,请执行您想要的任何操作。否则,执行默认值。

不确定这是否是个好主意。但它应该工作。

于 2012-07-28T18:06:06.390 回答
0

您可以创建一个新类型,即一个 Person 类,您可以将其包含在发送到视图的模型中。即 Model.Person。

通过定义一个名为 Person 的新 EditorTemplate 和 DisplayTemplate。默认情况下,调用 @Html.EditorTemplateFor(x=>x.Person); 将为该类型查找 EditorTemplate。

查看以下有关“如何使用 asp.net mvc 编辑器模板”的 stackoverflow 帖子

于 2012-07-28T17:07:48.380 回答