Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当@model是IEnumerable<;时,Html.DisplayNameFor(model=>;model.ID)中的模型如何成为学生;学生>;? Details.cshtml_C#_Asp.net Mvc - Fatal编程技术网

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);