2016-07-06 61 views
-2

对于我的项目,我使用Web服务从数据库获取数据。 getAvailableList()方法在该服务中可用,并返回int []数组。我想把它转换成对象,并且想把它传递给View。下面是 是Action方法。如何将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]'。我如何克服这个问题?

+0

你可以发布获取可用项目列表方法。 –

+0

它位于WSDL Web服务 – OK91

回答

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()); 
+0

我很感谢并感谢您回答我的问题。 – OK91

+0

此外,我想从sub_employee类中找到项目,其中SE_ID等于alist – OK91

+0

您可以使用where条件来过滤列表,例如.... var alist = IM.getAvailableList(); (x => new WEB1.Models.sub_employee {SE_ID = x})。(x.ToList()); –

0

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