Asp.net mvc 你能解释一下为什么@Html.DisplayFor(x=>x)会产生与@Html.DisplayForModel()相同的结果吗? 问题: 您能解释一下为什么@Html.DisplayForx=>x会在以下场景中产生与@Html.DisplayForModel相同的结果吗? 什么时候会产生不同的结果?

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表达式表示的每

模型

Index.cshtml视图

共享/DisplayTemplates/Genre.cshtml

该方法返回模型中每个属性的HTML标记

该方法返回对象中由您提供的Lambda表达式表示的每个属性的HTML标记

因此,当您说DisplayForx=>x时,您的表达式会说,使用整个模型,这会给出与DisplayForModel相同的结果

演示DisplayFor的Visual Studio项目可用

该方法为模型中的每个属性返回HTML标记

该方法返回对象中由您提供的Lambda表达式表示的每个属性的HTML标记

因此,当您说DisplayForx=>x时,您的表达式会说,使用整个模型,这会给出与DisplayForModel相同的结果

可以使用演示DisplayFor的Visual Studio项目

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>