Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 MVC数据注释和模板_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 MVC数据注释和模板

Asp.net mvc 3 MVC数据注释和模板,asp.net-mvc-3,Asp.net Mvc 3,在这个MVC脚手架代码中,我了解正在使用的模板,我可以定义自己的模板。 此外,还考虑了发送到视图的对象上的数据注释 但什么是模型项 @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.ReferenceNum) </td> @foreach(模型中的变量项){ @DisplayFor(mod

在这个MVC脚手架代码中,我了解正在使用的模板,我可以定义自己的模板。 此外,还考虑了发送到视图的对象上的数据注释

但什么是模型项

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.ReferenceNum)
        </td>
@foreach(模型中的变量项){
@DisplayFor(modelItem=>item.ReferenceNum)

在您的示例中,Html.DisplayFor的参数是一个lambda表达式:给定modelItem,您将引用modelItem.ReferenceNum属性。modelItem与Model的类型相同


备注:它应该读为modelItem=>modelItem.ReferenceNum。否则:item=>item.ReferenceNum。

Short-awner是
Model
,发送到DisplayFor的lambda的参数
modelItem
是同一个对象

Html
在本例中是视图类上类型的属性。在本例中,T是传递给视图的视图状态的类型

正如您所注意到的,视图在其
Model
属性中公开了您的viewstate。它还将其
Html
属性实例化为具有相同值的HtmlHelper,因此当您使用
Html
属性时,它实际上会将相同的值再次传递给您提供的lambda


这里的名称modelItem只是lambda的名称,它可以是任何名称。

modelItem
是一个未使用的背景变量

DisplayFor
需要一个接收单个参数的方法。 该方法的实现实际上是lambda表达式的右侧:
item.[SOMETHING]
。 恰好
item.[SOMETHING]
完全忽略了
modelitem
。 当然,将
模型项
替换为
会导致编译错误,因为
属于
模型
,并且它不是调用匿名方法
{item.[SOMETHING]}
时创建的对象

这就是为什么
modelitem
实际上可以是符号表中不存在的任何名称(即编译器还没有定义的名称)