【发布时间】:2012-05-06 00:13:50
【问题描述】:
在MVC RC 2 docs,我们发现:
当表达式包含数组或集合索引时,呈现输入元素的基于表达式的帮助器会生成正确的名称属性。例如,由 Html.EditorFor(m => m.Orders[i]) 为列表中的第一个订单呈现的 name 属性的值将是 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()
}
【问题讨论】:
-
EditorFor 现在支持数组和集合,因此索引是输入 html 标记的 id 的一部分。哪些 C# 代码可以展示如何使用它,尤其是当您使用 List 并且您希望数据模型绑定回原始对象时?
-
该示例显示了一个带有学生列表的 Classroom 对象。我创建了一个教室模板和一个学生模板,但想知道在教室模板中放入什么 C# 代码以使用 EditorFor 呈现学生,以便在我发布时,它模型绑定回 myClass 对象。
标签: asp.net-mvc-2 collections editorfor