对于我的项目,我使用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 ;.我该如何克服这个问题?
答案 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());