2017-07-30 13 views
1

モデルをいくつかのプロパティが含まれているかどうかを確認するために、コントローラをスカフォールドするテンプレートを変更しようとしています。私のテンプレートでは、作成アクションの結果(投稿)を書いている部分で:.net MVCスカフォールドテンプレート:モデルにプロパティが含まれているかどうかを確認してください。

 [HttpPost] 
     [ValidateAntiForgeryToken] 
<# if (UseAsync) { #> 
     public async Task<ActionResult> Create(<#= bindAttribute #><#= ModelTypeName #> <#= ModelVariable #>) 
<# } else { #> 
     public ActionResult Create(<#= bindAttribute #><#= ModelTypeName #> <#= ModelVariable #>) 
<# } #> 
     { 



    <# 
    if (THE MODEL CONTAINS A PROPERTY NAMED "creation_date")) { 
    #> 
     <#= modelVariable #>.creation_date = DateTime.Now; 
    <# } #> 

それを行う方法はありますか?

答えて

0

私はそれにその最善の解決策を確認してください、自分自身に答えていたが、そのはうまく働いてOK:

<# 
bool entityWithCreationDate = false; 
foreach (PropertyMetadata property in ModelMetadata.Properties) { 
    if(property.PropertyName == "creation_date") { entityWithCreationDate=true; break; } 
} 
if(entityWithCreationDate==true) { 
#> 
     <#= ModelVariable #>.creation_date = DateTime.Now;  
<# 
} 
#> 
+0

あなたはLINQ '場合(ModelMetadata.Properties.Any(C => Cを使用して、それを少し簡略化することができ.PropertyName == "creation_date")){...} 't4にLINQをサポートするための組み込みディレクティブ/インポートがまだ含まれていない場合は、アセンブリディレクティブ/インポートを追加する必要があるかもしれないことに注意してください – pinkfloydx33

関連する問題