ASP.NET MVC 2 UI Шаблоны отображения данных без разметки. Как исправить? - PullRequest
0 голосов
/ 20 февраля 2010

Используя EditorFor (модель lambda, "viewTemplateName"), мой вывод совсем не такой, как ожидалось. Это не приводит к ошибкам, но это рендеринг вывода без разметки. Что я делаю неправильно?

Выход:

HarryTomRichard

Ожидаемый результат (мне нужно выяснить, как отобразить индексы List [] для id тоже, но пока не для этой проблемы):

<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>

Мои занятия:

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

Мой контроллер:

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);
}

Мой индексный просмотр:

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

Шаблон моего класса (обратите внимание на элемент m =>, чтобы я мог использовать элемент, а не модель):

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>

Шаблон моего ученика:

Inherits="System.Web.Mvc.ViewUserControl<Marcs.Models.Student>"
%><span><%= Html.Encode( Html.EditorFor( m => m.Name)) %></span>

1 Ответ

0 голосов
/ 21 февраля 2010

У jfar есть ответ, и я добавлю его соответствующим образом. Решением было просто убедиться, что файлы расположены в Views-> ControllerName-> EditorTemplates и Views-> ControllerName-> DisplayTemplates. Они также могут быть расположены в общей папке.

Мне нравится этот пост. Теперь мне нужно научиться использовать помощники HTML-шаблонов MVC 2, которые ссылаются на коллекции. Это в MVC 2 RC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...