@Html.DisplayFor(x=>x)
会在以下情况中产生与@Html.DisplayForModel()
相同的结果吗?模型
using System.Collections.Generic;
namespace MvcMusicStore.Models
{
public class Genre
{
public int GenreId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Album> Albums { get; set; }
}
}
控制器
using System.Linq;
using System.Web.Mvc;
using MvcMusicStore.Models;
namespace MvcMusicStore.Controllers
{
public class HomeController : Controller
{
MusicStoreEntities db = new MusicStoreEntities();
//
// GET: /Home/
public ActionResult Index()
{
var genres = db.Genres.ToList();
return View(genres);
}
}
}
Index.cshtml查看
@model IEnumerable<MvcMusicStore.Models.Genre>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.DisplayFor(x=>x)
或
@model IEnumerable<MvcMusicStore.Models.Genre>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.DisplayForModel()
共享/ DisplayTemplates / Genre.cshtml
@model MvcMusicStore.Models.Genre
<fieldset>
<legend>Genre</legend>
<div class="display-label">Name</div>
<div class="display-field">@Model.Name</div>
<div class="display-label">Description</div>
<div class="display-field">@Model.Description</div>
</fieldset>
答案 0 :(得分:5)
DisplayForModel()
方法为模型中的每个属性返回HTML标记。
DisplayFor()
方法为对象中的每个属性返回HTML标记,该属性由您提供的Lambda表达式表示。
因此,当您说DisplayFor(x => x)
时,您的表达式会说,“使用整个模型”,它会为您提供与DisplayForModel()
相同的结果。
演示DisplayFor()的演示Visual Studio项目可用here.