ASP.NET MVC 2 RC: как использовать EditorFor для отображения правильных атрибутов имени для списка <>? - PullRequest
2 голосов
/ 22 февраля 2010

В MVC RC 2 документах мы находим:

Помощники на основе выражений, которые визуализируют элементы ввода, генерируют правильные атрибуты имени, когда выражение содержит индекс массива или коллекции.Например, значение атрибута name, представленного Html.EditorFor (m => m.Orders [i]) для первого порядка в списке, будет Orders [0].

Кто-нибудь хочет связать пример кода представления C # (используя Список, где результат может быть привязан к модели после публикации)?

Просто для справки, я использую следующий код для проверкимодель связывает правильно туда и обратно.Он просто показывает вид, который позволяет изменить, а затем отображает вид с отредактированными данными при отправке формы.

[HandleError]
public class HomeController : Controller
{
    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); // EditorFor()
    }

    [HttpPost]
    public ActionResult Index( Classroom myClass)  
    {
        return View("IndexPost", myClass); // DisplayFor()
    }

1 Ответ

1 голос
/ 22 февраля 2010

Этот код:

<% for (int count = 0; count < Model.Students.Count; count++ )
   {                                              %><%= 
      Html.EditorFor(m => m.Students[count])      %><%
   } 
%>

Оказал этот вывод:

<input class="text-box single-line" id="Students_0__Name" name="Students[0].Name" type="text" value="Harry" />
<input class="text-box single-line" id="Students_1__Name" name="Students[1].Name" type="text" value="Tom" />
<input class="text-box single-line" id="Students_2__Name" name="Students[2].Name" type="text" value="Richard" />

И когда я разместил контент, на экране было следующее (потому что у меня есть Student.ascx):

<table>
    <tr><td><span>Harry</span> </td></tr>
    <tr><td><span>Tom</span> </td></tr>
    <tr><td><span>Richard</span> </td></tr>
</table>

Но это все (я думаю). Следующий вопрос - как избавиться от этих тегов name = "".

...