gpt4 book ai didi

c# - MVC.net 核心 : response type always json not xml with ICollection

转载 作者:行者123 更新时间:2023-11-30 17:32:56 25 4
gpt4 key购买 nike

我使用这个贡献来返回 json 或 xml,具体取决于“接受” header 。

https://learn.microsoft.com/en-us/aspnet/core/mvc/models/formatting

services.AddMvc(options =>
{
options.RespectBrowserAcceptHeader = true;
options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
});

我的对象

public partial class Cartes
{
public Cartes()
{

}

public string CartNumero { get; set; }
public int? CartConsId { get; set; }
public int CartLotcaId { get; set; }
public int CartTypcaId { get; set; }
public string CartCrc { get; set; }
public DateTime? CartDateAttribution { get; set; }
public DateTime? CartDateClotureCarte { get; set; }
public DateTime? CartDateSaisie { get; set; }
}

这是工作!

但是当我将 ICollection 属性添加到 Cartes 时,返回总是在 JSON 中!

public virtual ICollection<UtilisationsCriteres> UtilisationsCriteres { get; set; }

UtilisationsCriteres 类:

public partial class UtilisationsCriteres
{
public int UtcriConsId { get; set; }
public int UtcriCrsupId { get; set; }
public string UtcriValeur { get; set; }
public int UtcriPartclieId { get; set; }
public DateTime UtcriDateInsert { get; set; }
public DateTime UtcriDateUpdate { get; set; }
public string UtcriUserUpdate { get; set; }
}

Controller 的返回类型是 IActionResult。

知道为什么吗?

最佳答案

我可以确认这种(奇怪的)行为。该集合可以为 null(或空)并且内容从 application/xml 更改至 application/json .

当使用接口(interface)而不是具体类型时,XML 序列化程序似乎丢失了。也许你应该在 https://github.com/aspnet/Mvc/issues 上创建一个新问题.

解决方法是使用具体类。改变 ICollection<UtilisationsCriteres>System.Collections.ObjectModel.Collection<UtilisationsCriteres>List<UtilisationsCriteres>似乎有效。

关于c# - MVC.net 核心 : response type always json not xml with ICollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281541/

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