如何在mvc3 razor中创建和实现自定义数据类型

时间:2012-07-28 15:49:40

标签: asp.net-mvc-3 razor mvc-editor-templates display-templates custom-data-type

我用Google搜索过多次这个问题。但我找不到任何解决办法。

我想创建一个带有默认DataTypeEditorTemplate的自定义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创建一个可重用的数据类型。

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

2 个答案:

答案 0 :(得分:2)

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

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

获取属性值

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

不确定这是不是一个好主意。但它应该有用。

答案 1 :(得分:0)

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

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

查看"How to use asp.net mvc Editor Templates"

上的以下stackoverflow帖子