我想使用Html.DisplayModelFor()在視圖中顯示項目列表。爲什麼Html.DisplayForModel()只顯示列表中的一個項目?
這裏是控制器:
public ActionResult Index() {
var person = new ApplicationUser();
person.Email = "[email protected]";
person.UserName = "Greg";
var person2 = new ApplicationUser();
person.Email = "[email protected]";
person.UserName = "Gary";
var list = new List<ApplicationUser>();
list.Add(person);
list.Add(person2);
return View(list);
}
這裏是視圖:
@model IEnumerable<WebApplication32.Models.ApplicationUser>
@Html.DisplayForModel()
下面是名爲DisplayTemplate ApplicationUser:
@model WebApplication32.Models.ApplicationUser
<div>
@Html.DisplayFor(u=> u.UserName)
@Html.DisplayFor(u=> u.Email)
</div>
結果只有第一項是顯示。
如果我改變視圖:
@model IEnumerable<WebApplication32.Models.ApplicationUser>
@foreach (var item in Model)
{
@Html.DisplayFor(x => x)
}
然後被顯示的各個項目。
但第二種觀點對我沒有意義:在foreach中,'item'似乎沒有被使用。但它正在循環着項目。
這可能重複:http://stackoverflow.com/questions/8002059/asp-net-mvc-display-template-for-a-collection 順便說一句,該方法的名稱是'DisplayForModel()' ,而不是'DisplayModelFor()'。 – ataravati
更正了錯誤。 –