【问题标题】:Error message when trying to iterate list in view尝试在视图中迭代列表时出现错误消息
【发布时间】:2015-12-19 05:13:44
【问题描述】:

在我的模型中,我有这个字符串列表:

public static List<string> listOfNames = new List<string>();

在控制器中我有这个动作:

public ActionResult NameInput()
    {
        NameModel.prepareList();
        return View("NameInput", NameModel.listOfNames);
    }

在视图的顶部我有这个:

@model IEnumerable<Exercise_3.Models.NameModel>

我想这是错误的地方,但我不知道改用什么。这条线从一开始就可以,当我有一个对象列表时,但现在我只想使用一个字符串列表。

我在运行应用程序时收到的错误消息如下:

传入字典的模型项的类型为“System.Collections.Generic.List`1[System.String]”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[的模型项练习_3.Models.NameModel]'。

【问题讨论】:

  • 你能试试把@model IEnumerable&lt;Exercise_3.Models.NameModel&gt;改成@model IEnumerable&lt;String&gt;吗?
  • 你传递给视图的模型是List&lt;string&gt;,所以在视图中它需要是@model IEnumerable&lt;string&gt;
  • 感谢两位的帮助!

标签: c# asp.net-mvc


【解决方案1】:

您发送到视图的模型是NameModellistOfNames 属性值。 listOfNames 属性的类型为 List&lt;string&gt;。但是在您的剃刀视图中,您将模型类型指定为IEnumerable&lt;Exercise_3.Models.NameModel&gt;。这些不匹配。

您可以更新您的 razor 视图以使用 List&lt;string&gt; 作为模型类型

@model List<string>
<h1>Items</h1>
@foreach(var item in Model)
{
  <h2>@item</h2>
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多