1

我想为数据类型 EmailAddress 和 PhoneNumber 创建自定义显示模板。

DisplayTemplates 使用模型类型解析。然而,这里无法解析 DataType。我可以将模型类型设置为字符串来为任何字符串创建自定义显示模板,但是传入的是字符串而不是对象的属性。

4

1 回答 1

3

但是传入的是字符串而不是对象的属性。

是的,但您可以访问元数据:

ViewData.ModelMetadata.DataTypeName

例如,您可以有以下字符串模板:

@using System.ComponentModel.DataAnnotations

@if (ViewData.ModelMetadata.DataTypeName == DataType.PhoneNumber.ToString())
{ 
    <div>This is a phone number template</div>
}
else
{
    @Html.TextBox(
        "", 
        ViewData.TemplateInfo.FormattedModelValue,
        new { @class = "text-box single-line" }
    )
}
于 2013-04-22T11:00:19.263 回答