就个人而言,我会使用以下方法解决它:
public class Course
{
public String Name { get; set; }
}
public class CoursesViewModel
{
private IList<Course> courses;
public IList<Course> Courses{
get { return this.courses ?? (this.courses = new List<Course>()); }
set { this.courses = value; }
}
}
控制器:
public ActionResult Index()
{
CoursesViewModel model = new CoursesViewModel();
model.Courses.Add(new Course { Name = "Math" });
return View(model: model);
}
而你的观点:
@model CoursesViewModel
@* ... *@
<ul>
@foreach (Course course in Model.Courses)
{
<li>@course.Name</li>
}
</ul>
@* ... *@
使用模型,这就是 MVC 的全部意义所在。它使生活变得如此轻松,更不用说您可以应用到模型以进一步自定义其显示方式的属性(模板等)。[Ab]使用dynamic
你现在的方式只是为了让你的网站解决未来的问题,更不用说一堆猫捉老鼠的来回了(“我给那个属性起什么名字?”,“什么值类型是'foo' 再次出现?”,...),忽略是否还有其他人需要处理您生成的代码。