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

时间:2016-07-06 19:42:36

标签: c# asp.net-mvc linq asp.net-mvc-4

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

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)
     }
}

我收到错误信息传递到字典中的模型项的类型是&#39; System.Int32 []&#39;,但是这个字典需要一个类型为&#39; System.Collections.Generic的模型项.List`1 [WEB1.Models.sub_employee]&#39 ;.我该如何克服这个问题?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您的视图是使用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());