如何将 int[] 转换为模型项



对于我的项目,我使用Web服务从数据库中获取数据。 getAvailableList() 方法在该服务中可用,它返回 int[] 数组。我想将其转换为对象,并希望将其传递到视图中。下面是操作方法。

public ActionResult Ataxi()
    {
        var alist = IM.getAvailableList();
        return View(alist);
    }

这是我的观点

@model List<WEB1.Models.sub_employee>
@foreach(var item in Model){
if (item.SE_ID != null)
     {
          @Html.DisplayFor(modelItem => item.SE_ID)
     }
}

我收到错误消息 传递到字典中的模型项的类型为"System.Int32[]",但此字典需要类型为"System.Collections.Generic.List"1[WEB1.Models.sub_employee]'。如何克服这个问题?

您的视图是使用 WEB1 强类型的。Models.sub_employee对象,因此您无法将 int[] 传递给您的视图,这是编译器抱怨的内容。如果
IM.getAvailableList() 方法将所有 sub_employee.SE_ID 作为 int[] 返回,并且SE_ID int32 那么您可以像下面这样构造sub_employee列表并传递它。使用 System.Linq 命名空间。

var alist = IM.getAvailableList();
    return View(alist.Select(x => new WEB1.Models.sub_employee { SE_ID = x }).ToList());

检查方法的返回类型。它不会返回员工列表。它返回 int. 并且当您在 var alist 中获取结果时,编译器也不会抱怨数据类型,但是当您将其传递给视图时,视图是强类型的,因此它会抱怨。检查 wsdl 文档并找出方法的返回类型。

相关内容

  • 没有找到相关文章

最新更新