2013-04-22 54 views
1

我想爲數據類型EmailAddress和PhoneNumber創建自定義顯示模板。DataType.EmailAddress和DataType.PhoneNumber的自定義顯示模板

DisplayTemplates使用模型類型進行解析。但DataType不能在這裏解決。我可以將模型類型設置爲字符串來爲任何字符串創建自定義顯示模板,但傳入的是字符串而不是對象的屬性。

回答

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" } 
    ) 
} 
+0

謝謝,很好地工作!你的例子是一個EditorTemplate雖然;-) – Wouter 2013-04-22 11:53:26

+0

哦,是的,我沒有注意:-) – 2013-04-22 12:07:28