在我的模型中,我有以下字符串列表:

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 [Exercise_3.Models .NameModel]”。

最佳答案

您要发送到视图的模型是listOfNamesNameModel属性值。 listOfNames属性的类型为List<string>。但是在剃刀视图中,您将模型类型指定为IEnumerable<Exercise_3.Models.NameModel>。那些不匹配。

您可以更新剃刀视图以使用List<string>作为模型类型

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

10-08 17:50