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

本文关键字:ASP NET 应用 Web 服务 对象 列表 WCF | 更新日期: 2023-09-27 18:35:46

我正在尝试将列表从我的 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");

但是当我运行应用程序时,我收到一个错误:

传递到字典中的模型项类型为"WCFasp.net.WCF.Persons",但此字典需要类型为"System.Collections.Generic.List'1[WCFasp.net.WCF.Person]"的模型项。

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

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

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

您的 wcf 客户端代码很好,问题出在视图中,因为它只理解类型 List<Person> 的对象,您可以将其向上转换为 Base 类型,这是在将其传递给视图之前List<Person>

的:
WCF.Persons personlist = client.GetPersonList(@"C:'example"); 
return View(personlist as List<Person>);

并且您的视图被强键入以List<Person>我怀疑:

@model List<Person> 
WCF.Persons persons = client.GetPersonList(@"C:'example"); 
return View(persons);

您的观点应如下

@model WCF.Persons
@foreach(var person in Model)
{ 
@person
}