如何将对象列表从WCF服务传递到ASP.NET Web应用程序

时间:2016-02-23 12:58:11

标签: c# asp.net-mvc wcf

我正在尝试将列表从我的WCF服务传递到我的ASP.NET Web应用程序。

首先,我传递了一个通常的对象列表,并在我的配置中使用System.Collections.Generic.List,一切正常。

现在我改变了我的代码并从我的列表中删除了一个对象 该课程如下:

public class Persons : List<Person>
{
    private List<Person> personlist;

    public Persons()
    {
        personlist = new List<Person>();
    }
}

现在我很难配置。
我的配置有什么变化?
我将集合类型设置为:System.Collections.ObjectModel.Collection
我的客户没有给我一个错误:

WCF.Persons personlist = client.GetPersonList(@"C:\example");

但是当我运行应用程序时出现错误:

  

传递到字典中的模型项的类型为&#39; WCFasp.net.WCF.Persons&#39;,但此字典需要类型为&#39; System.Collections.Generic.List`1的模型项[WCFasp.net.WCF.Person]&#39;

甚至可以通过这样的事情吗?我在哪里进行更改?

我搜索了很多答案,但找不到任何有用的东西。

2 个答案:

答案 0 :(得分:2)

您的wcf客户端代码很好,问题出在视图中,因为它只能理解List<Person>类型的对象,您可以将它转换为基类型List<Person>,然后再传递给它看起来像:

WCF.Persons personlist = client.GetPersonList(@"C:\example"); 

return View(personlist as List<Person>);

我的视图强烈输入List<Person>我怀疑:

@model List<Person> 

答案 1 :(得分:0)

WCF.Persons persons = client.GetPersonList(@"C:\example"); 

return View(persons);

您的观点应如下

@model WCF.Persons

@foreach(var person in Model)
{ 
@person
}