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

C# 如何将对象列表从WCF服务传递到ASP.NET web应用程序,c#,asp.net-mvc,wcf,C#,Asp.net Mvc,Wcf,我正在尝试将列表从我的WCF服务传递到我的ASP.NET web应用程序。 首先,我传递了一个常见的对象列表,并在配置中使用了System.Collections.Generic.list,一切都很顺利 现在我更改了代码并从列表中创建了一个对象。 该类如下所示: public class Persons : List<Person> { private List<Person> personlist; public Persons() {

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

首先,我传递了一个常见的对象列表,并在配置中使用了
System.Collections.Generic.list
,一切都很顺利

现在我更改了代码并从列表中创建了一个对象。
该类如下所示:

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

    public Persons()
    {
        personlist = new List<Person>();
    }
}
但是,当我运行应用程序时,会出现一个错误:

WCF.Persons personlist = client.GetPersonList(@"C:\example");
传递到字典中的模型项的类型为“WCFasp.net.WCF.Person”,但此字典需要“System.Collections.Generic.List`1[WCFasp.net.WCF.Person]”类型的模型项

这样的事情有可能通过吗?我必须在哪里进行更改


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

您的wcf客户端代码很好,问题在于视图中,因为它只理解类型为
List
的对象,您可以将其向上转换为基本类型,即
List
,然后将其传递到视图中,如:

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

return View(personlist as List<Person>);
WCF.Persons personlist=client.GetPersonList(@“C:\example”);
返回视图(个人列表为列表);
您的视图被强类型化为
列表
我怀疑:

@model List<Person> 
@型号列表

您的wcf客户端代码很好,问题在视图中,因为它只理解类型为
列表的对象,您可以将其向上转换为基本类型,即
列表
,然后将其传递给视图,如:

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

return View(personlist as List<Person>);
WCF.Persons personlist=client.GetPersonList(@“C:\example”);
返回视图(个人列表为列表);
您的视图被强类型化为
列表
我怀疑:

@model List<Person> 
@型号列表
你的观点应该如下

@model WCF.Persons

@foreach(var person in Model)
{ 
@person
} 
你的观点应该如下

@model WCF.Persons

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

非常感谢。我将视图中的模型绑定更改为新对象是的,您有两种选择,取决于什么适合您谢谢。我将视图中的模型绑定更改为新对象是的,您有两种选择,这取决于什么适合您