使用T4模板创建具有自定义Html控件的View

时间:2015-12-15 11:18:09

标签: razor template-engine t4 envdte asp.net-mvc-scaffolding

我创建了像bellow

这样的视图模型类
public class GenericFormModel
{ 
   public string SimpleInput { get; set; } 
   public string InputAddOn { get; set; } 
   public string InputTextArea { get; set; } 
   public DateRange Date { get; set; }  
}

然后我在rote / CodeTemplates / MvcView位置下创建了我自己的创建模板CustomCreate.cs.t4。我尝试为DateRange属性创建Input Razor控件。但我无法从CustomCreate.cs.t4读取DateRange属性,如下文

<# 
foreach (PropertyMetadata property in ModelMetadata.Properties) {
if (property.Scaffold && !property.IsAutoGenerated && !property.IsReadOnly && !property.IsAssociation) {

if (property.IsPrimaryKey && IsPropertyGuid(property)) {
continue;
}

#> 
 @Html.InputFor(model => model.<#= property.PropertyName #>)
<#
}
}
 #>

Nore:

我的问题是ModelMetadata.Properties只返回string,int,DateTime,decimal ..properies。它没有返回DateRange属性。

我犯了什么错误。请任何人帮助我。过去两周我面临这个问题。

我使用VS2013和MVC5。

  

InputFor()是我的自定义Html Helper

0 个答案:

没有答案