ASP.NET MVC 2 modèles interface utilisateur d'afficher des données sans majoration. Comment réparer?

StackOverflow https://stackoverflow.com/questions/2300980

Question

Utilisation EditorFor (modèle lambda, "viewTemplateName"), ma sortie est complètement pas comme prévu. Cela ne produit pas d'erreurs, mais il est rendu sortie sans majoration. Qu'est-ce que je fais mal?

La sortie:

HarryTomRichard

La sortie attendue (Expected je dois savoir comment rendre la liste [] index sur id aussi, mais pas à ce problème encore):

<table>
    <tr><td><span><input type="Text" id="Name[0]" value="Harry" /></span></td></tr>
    <tr><td><span><input type="Text" id="Name[1]" value="Tom" /></span></td></tr>
    <tr><td><span><input type="Text" id="Name[2]" value="Richard" /></span></td></tr>
</table>

Mes classes:

namespace Marcs.Models {
    public class Student   { public string Name { get; set; } }
    public class Classroom { public List<Student> Students { get; set; }
}

Mon contrôleur:

public ActionResult Index() {
    var myStudents = new List<Student>();
    myStudents.Add(new Student { Name = "Harry" });
    myStudents.Add(new Student { Name = "Tom" });
    myStudents.Add(new Student { Name = "Richard" });
    var myClass = new Classroom {Students = myStudents};
    return View(myClass);
}

My View Index:

Inherits="System.Web.Mvc.ViewPage<Marcs.Models.Classroom>" %>
<% using (Html.BeginForm()) { %>
    <%= Html.EditorFor(m => m.Students, "Classroom") %>
    <input type="submit" value="Save" />
<% } %>

Mon classe modèle (notez le m => article pour que je puisse utiliser l'élément, et non le modèle):

Inherits="System.Web.Mvc.ViewUserControl<List<Marcs.Models.Student>>" %>
<table>
    <% foreach (Marcs.Models.Student item in Model)
    { %><tr><td><%= Html.EditorFor(m => item, "Student")%></td></tr><%
    } %>
</table>

Mon modèle de l'élève:

Inherits="System.Web.Mvc.ViewUserControl<Marcs.Models.Student>"
%><span><%= Html.Encode( Html.EditorFor( m => m.Name)) %></span>
Était-ce utile?

La solution

jfar a la réponse, et je le marquer de façon appropriée lorsqu'il est ajouté. La solution était tout simplement pour que les fichiers étaient situés dans vues-> ControllerName-> EditorTemplates et vues-> ControllerName-> DisplayTemplates. Ceux-ci peuvent également se trouver dans le dossier partagé aussi.

J'aime ce poste. Maintenant, je dois apprendre à utiliser les aides de modèle MVC 2 Html qui font référence à des collections. Il est dans MVC 2 RC.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top