2016-03-22 7 views
0

Ich habe ein paar Probleme mit EditorFor und ich kann das Verhalten nicht verstehen.MVC EditorFür nur Rendern einzelner Eigenschaft, nicht EditorTemplate

Ich habe eine Liste von Objekten, auf denen ich eine Editor-Vorlage basierend auf dieser Liste rendern möchte.

Gemäß https://stackoverflow.com/a/26069912 sollte die EditorFor die Vorlage für jedes Objekt rendern.

public class Person 
{ 
    public string Name { get; set; } 
    public string PhoneNumber { get; set; } 
} 

Die Vorlage

@model EditForTest.Models.Person 

Name 
<td>@Html.TextBoxFor(x => x.Name)</td> 
Phone 
<td>@Html.TextBoxFor(x => x.PhoneNumber)</td> 

In der Ansicht ich eine Liste von Personen, die ein Ansichtsmodell bekam enthält. Wenn ich

@Html.EditorFor(x => x.Persons) 

verwenden, wird die Vorlage nicht gerendert und irgendwie wird die erste Eigenschaft auf der Seite gerendert.

+1

Haben Sie die Vorlage richtig benannt? - '/ Views/Shared/EditorTemplates/Person.cshtml' –

+0

Würden Personen zufällig eine Liste von Person-Objekten sein? Ich bin mir ziemlich sicher, dass eine Editor-Vorlage nicht so funktionieren wird. Sie müssten die Liste manuell durchlaufen und den EditorFor aufrufen. –

+0

Ich würde lieber eine "PartialView" anstatt – esiprogrammer

Antwort

0

Als @StephenMuecke erwähnt hatte ich ein Problem mit meiner Editorvorlage. Sobald die Vorlage in den korrekten Pfad /Views/Shared/EditorTemplates/Person.cshtml verschoben wurde, wurde der Editor ordnungsgemäß gerendert.