2012-03-30 1 views
0

Ich habe die folgenden foreach in einer Ansicht, ich möchte es über Eigenschaften in meinem Ansichtsmodell durchlaufen und ein Textfeld für jede Eigenschaft anzeigen, die eine Zeichenfolge ist.Überprüfen Sie, ob eine Ansicht Modelleigenschaft eine Zeichenfolge ist

foreach (var property in ViewData.ModelMetadata.Properties) 
     { 
      if(property.GetType() == "string") 
      { 
       <div class="watermark"> 
        <label>Friend's email address</label> 
        <br> 
        @Html.Editor(property.PropertyName) 
       </div> 
      } 
     } 

Idealer property.GetType() == „string“ würde wahr oder falsch zurückgeben, aber dies ist nicht der Fall, weil .GetType immer zurückkehrt System.Type (glaube ich).

+0

Versuchen Sie, warum sind Sie die Eigenschaften Schleifen? warum nicht 'Html.EditorFor (model => model.SomeProperty)'. – RPM1984

+0

Ich habe 10 E-Mail-Eigenschaften in diesem Ansichtsmodell, es schien albern, Paste, dass 10 mal zu kopieren, damit ich die Strings für die Redakteure durchlaufen würde. –

+0

Gefunden, musste sein if (property.ModelType.Name == "String") –

Antwort

1

dieses

if(property.GetType() == typeof(string))