我正在使用ASP.NET MVC Razor視圖引擎,並且我正在嘗試使用Viewbag。以下代碼不適用於我。在控制器我有如何獲得ASP.NET MVC中的ViewBag值?
ViewBag.courses = new List<dynamic>();
ViewBag.courses.Add(new { Name = "Math" });
,然後在視圖中我有
@foreach(dynamic course in ViewBag.courses)
{
<li>@course.Name</li>
}
但它給了我一個錯誤說對象當然不具有名稱的定義。調試器給我的價值,並正確顯示一切。有什麼辦法讓這個工作? (我已經有了解決方法,我只是寧願使用這個)。
在此先感謝。
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>
@* ... *@
使用的模型,這就是整點
你不能傳遞一個視圖模型,因爲...(動態變量_that_程度上會只是給你帶來麻煩和b當涉及到稍後的更新/重構時,它將成爲你的致命弱點)。 – 2012-04-23 00:57:26