【问题标题】:Endpoint receives object with wrong values端点接收到错误值的对象
【发布时间】:2019-07-08 19:23:21
【问题描述】:

我有一个用 C# 编写的端点,它应该接收一个对象作为函数的参数。出于测试目的,该对象只有两个属性:Active 和 Deleted。当我在 Postman 中设置对象以测试 Active 的值为 true 和 Deleted 的值为 false 或反之亦然的端点时,这些值将被忽略并且端点返回两个属性的值都设置为 false 的对象.

这是控制器中的方法:

[HttpPost]
public dynamic Courses(long? courseId, CourseFilter paramsObject)
{
    //Create an instance of the CourseService class
    CourseService course = new CourseService();

    //Return the result of the GetAllCourses method in the CourseService class
    //return course.Courses(courseId, paramsObject);
    return ("Active: " + paramsObject.Active + " " + "Deleted: " + paramsObject.Deleted);

    return paramsObject;
}

请注意,我只是使用 dynamic 并返回对象只是为了测试和调试目的,以查看值是否正确。

这是 Postman 中对象的图片:

HttpPost JSON Object

谢谢

【问题讨论】:

    标签: c# json rest


    【解决方案1】:

    您使用 Postman 发布的对象似乎不正确。 您当前发布的数据结构与 C# 中的数据结构相同:

    class Root
    {
        public ParamsObject ParamsObject { get; set; }
    }
    
    class ParamsObject
    {
        public bool Active { get; set; }
    
        public bool Deleted { get; set; }
    }
    

    但您似乎只想发布一个ParamsObject 对象,而不是Root 类型的东西。

    尝试将 Postman 中的 JSON 修改为:

    {
      "Active": true,
      "Deleted": false
    }
    

    与问题无关:

    这是second time 您在一小时内发布的初级 ASP.NET 问题。您甚至可以在我之前回答的screenshot 中看到如何正确发布此对象!

    我建议您在发布之前研究这些内容,因为那里有大量的学习材料。

    【讨论】:

    • 您好,感谢您的帮助。在将其发布到此处之前,我曾尝试查找内容。相信我,我对重新发布已回答的问题或浪费您或任何其他用户的时间不感兴趣。我只在尝试不同的方法自己解决问题和查找问题时遇到了死胡同,才发布了这两个问题。
    • 如果你真的做了研究,走入了死胡同,我想没关系!我的回答至少解决了你的问题吗?
    • 不知道为什么这个问题会被否决,但确实如此。谢谢。
    猜你喜欢
    • 2020-09-14
    • 2015-02-08
    • 2018-12-09
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多