POST Guid到WebAPI收到NULL

c# rest web-services asp.net-web-api

156 观看

1回复

1073 作者的声誉

我将一个对象作为JSON发布到用C#编写的WebAPI服务。其中一个属性是Guid?(可为空)。即使它已被填充,但它被接收为NULL。

为了说明这个问题,我有一个C#对象。

public class TransferObject
{
    public String Name { get; internal set; }

    public Guid? ID { get; internal set; }
}

发送到WebService的JSON看起来像......

{
    "Name":"Robert Smith",
    "ID": "5bcf697c-5db1-4ae8-be28-5f6c4c972fcd"
}

Web服务方法看起来像......

[HttpPost]
public HttpResponse SaveName([FromBody] TransferObject model)
{
    Guid modelID = model.ID; // returns null
    String name = model.Name // "Robert Smith"
}

名称正在正确填充。任何人都有任何想法为什么Guid在模型参数中被“无效” ?

作者: Gary O. Stenstrom 的来源 发布者: 2018 年 8 月 8 日

回应 1


2

61 作者的声誉

决定

你确定String名称在json中传递了值吗?我认为像你的TransferObject这样的公共api不应该有内部属性(和内部setter或getter),如果你想用JsonSerializer反序列化它。JsonSerializer是外部.dll,无法访问您的setter。

让我们试试公共制定者吧。

作者: Michał Mielczarek 发布者: 2018 年 8 月 8 日
32x32