Asp.net mvc 你能解释一下为什么@Html.DisplayFor(x=>x)会产生与@Html.DisplayForModel()相同的结果吗? 问题: 您能解释一下为什么@Html.DisplayForx=>x会在以下场景中产生与@Html.DisplayForModel相同的结果吗? 什么时候会产生不同的结果?
模型 Index.cshtml视图 或 共享/DisplayTemplates/Genre.cshtml 该方法返回模型中每个属性的HTML标记 该方法返回对象中由您提供的Lambda表达式表示的每个属性的HTML标记 因此,当您说DisplayForx=>x时,您的表达式会说,使用整个模型,这会给出与DisplayForModel相同的结果 演示DisplayFor的Visual Studio项目可用该方法为模型中的每个属性返回HTML标记 该方法返回对象中由您提供的Lambda表达式表示的每个属性的HTML标记 因此,当您说DisplayForx=>x时,您的表达式会说,使用整个模型,这会给出与DisplayForModel相同的结果 可以使用演示DisplayFor的Visual Studio项目Asp.net mvc 你能解释一下为什么@Html.DisplayFor(x=>x)会产生与@Html.DisplayForModel()相同的结果吗? 问题: 您能解释一下为什么@Html.DisplayForx=>x会在以下场景中产生与@Html.DisplayForModel相同的结果吗? 什么时候会产生不同的结果?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,模型 Index.cshtml视图 或 共享/DisplayTemplates/Genre.cshtml 该方法返回模型中每个属性的HTML标记 该方法返回对象中由您提供的Lambda表达式表示的每个属性的HTML标记 因此,当您说DisplayForx=>x时,您的表达式会说,使用整个模型,这会给出与DisplayForModel相同的结果 演示DisplayFor的Visual Studio项目可用该方法为模型中的每个属性返回HTML标记 该方法返回对象中由您提供的Lambda表达式表示的每
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);
}
}
}
@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()
@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>