Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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# Html.DisplayForModel引发InvalidOperationException_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# Html.DisplayForModel引发InvalidOperationException

C# Html.DisplayForModel引发InvalidOperationException,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我的观点是 @model List<string> ... @Html.DisplayForModel("Name") ... @型号列表 ... @Html.DisplayForModel(“名称”) ... 我的“名称”显示模板是 @model string <span>@Model</span> @模型字符串 @模型 这不起作用,我得到: 传递到字典中的模型项的类型为“System.Collections.Generic.List1[string

我的观点是

@model List<string>
...
@Html.DisplayForModel("Name")
...
@型号列表
...
@Html.DisplayForModel(“名称”)
...
我的“名称”显示模板是

@model string
<span>@Model</span>
@模型字符串
@模型
这不起作用,我得到:

传递到字典中的模型项的类型为
“System.Collections.Generic.List
1[string]”,但此字典需要类型为“string”的模型项`


我在这里做错了什么吗?

您的第一个列表的模型是
list
类型,您可以将此模型传递给显示模板。但是显示模板需要类型为
string
的模型。您的显示模板还应包含字符串列表:

@model List<string>
@foreach(var item in Model)
{
   <span>@item</span>
}
@型号列表
@foreach(模型中的var项目)
{
@项目
}

可能的原因:Model==nullI think DisplayFor()可用于显示模型中的项目列表,如下所示:@santhudr如果您将视图的模型类型更改为
IEnumerable
,然后使用
@Html.DisplayFor(x=>x,“Name”)
而不是使用
@Html.DisplayForModel(“Name”)调用它会怎么样
?我刚刚发现另一篇文章也有同样的问题-。这是因为我给了模板名@DisplayForModel()工作正常!:)