gpt4 book ai didi

c# - 如何将接口(interface)对象列表发布到 ASP.NET WebApi 操作中?

转载 作者:行者123 更新时间:2023-11-30 23:27:44 24 4
gpt4 key购买 nike

是否可以将包含接口(interface)对象列表的模型发布到 WebApi Controller 操作中?

当我按如下方式执行时,我的模型不为空,但属性“Items”不包含任何条目。

这是我的代码:

Controller.js

public void Post(MyModel model)
{
...
}

MyModel.cs

public class MyModel
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<IItem> Items { get; set; }
}

IItem.cs

public interface IItem
{
string Test1 { get; set; }
string Test2 { get; set; }
}

Item.cs

public class Item : IItem
{
public string Test1 { get; set; }
public string Test2 { get; set; }
}

我认为可以使用自定义模型绑定(bind)器,但我找不到合适的示例。

最佳答案

据我所知,默认模型绑定(bind)器只能绑定(bind)具体类,因此将 MyModel.Items 属性更改为:

IEnumerable<Item> Items { get; set; }

应该按预期工作。但是,如果由于某种原因您无法更改类型,您可以:

  1. 创建自定义模型绑定(bind)器以支持您已经提到的 IItem 接口(interface)

  2. 仅使用具体类创建 View 模型。您需要将现有类型映射到 View 模型,但这比编写自定义模型 Binder IMO 容易得多。

关于c# - 如何将接口(interface)对象列表发布到 ASP.NET WebApi 操作中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com