C# 当@model是IEnumerable<;时,Html.DisplayNameFor(model=>;model.ID)中的模型如何成为学生;学生>;? Details.cshtml
当我们在C# 当@model是IEnumerable<;时,Html.DisplayNameFor(model=>;model.ID)中的模型如何成为学生;学生>;? Details.cshtml,c#,asp.net-mvc,C#,Asp.net Mvc,当我们在Details.cshtml中有@model Student时,我们可以调用Html.DisplayNameFor(model=>model.ID),因为model是学生 @model ContosoUniversity.Models.Student <h2>Details</h2> <dl > <dt> @Html.DisplayNameFor(model => model.ID) </dt&g
Details.cshtml
中有@model Student
时,我们可以调用Html.DisplayNameFor(model=>model.ID)
,因为model
是学生
@model ContosoUniversity.Models.Student
<h2>Details</h2>
<dl >
<dt>
@Html.DisplayNameFor(model => model.ID)
</dt>
</dl>
这是怎么可能的?这是因为本文中列出的DisplayNameFor方法中有一个重载。这会自动调用内部模型
这是因为本文中列出的DisplayNameFor方法中有一个重载。这会自动调用内部模型
这是您正在使用的方法的签名:
public static MvcHtmlString DisplayNameFor<TModel, TValue>
(this HtmlHelper<IEnumerable<TModel>> html,
Expression<Func<TModel, TValue>> expression);
这是您正在使用的方法的签名:
public static MvcHtmlString DisplayNameFor<TModel, TValue>
(this HtmlHelper<IEnumerable<TModel>> html,
Expression<Func<TModel, TValue>> expression);
你是用代码做的吗?您的代码是否编译并运行?第二部分使用的是foreach
,所以它应该可以工作,但是第一部分没有foreach
,所以它不应该编译。@user3185569:是。它起作用了Html.DisplayFor
不是问题的关键,而是Html.DisplayNameFor
。您是否在代码中完成了此操作?您的代码是否编译并运行?第二部分使用的是foreach
,所以它应该可以工作,但是第一部分没有foreach
,所以它不应该编译。@user3185569:是。它起作用了Html.DisplayFor
不是问题的关键,但是Html.DisplayNameFor
@SingleFighter打字错误修复。感谢回答,但为了公平起见,必须接受第一个正确答案。@SingleFighter打字错误修复。感谢回答,但为了公平起见,必须接受第一个正确答案。
public static MvcHtmlString DisplayNameFor<TModel, TValue>
(this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression);