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()工作正常!:)