当前位置: 首页 > 知识库问答 >
问题:

Web API POST请求添加新记录,但所有属性都设置为NULL?

裴韬
2023-03-14

我有一个Web API POST请求,该请求应该使用在主体中找到的属性作为JSON向特定表添加一个新记录。然而,当输入所有的属性(我认为这是正确的)时,请求最终将添加一个新的记录,然而所有的属性将被设置为空,无论出于什么原因?

以下是我的API Post请求:

/*Define URL endpoint for adding a single role*/
        [System.Web.Http.Route("api/Roles/addRole")]
        /*HttpPost header, ensures only the usage of POST requests*/
        [System.Web.Mvc.HttpPost]
        /*Main return new list with added role*/
        public List<dynamic> addRole([FromBody] Roles roles)
        {
            if (roles != null)
            {
                /*Create an instance of the UltimateDB*/
                UltimateDBEntities db = new UltimateDBEntities();
                /*Optimize memory usage by disabling proxy creation*/
                db.Configuration.ProxyCreationEnabled = false;
                db.Roles.Add(roles);
                db.SaveChanges();
                return getAllRoles();
            }
            else
            {
                return null;
            }
            
        }

上面应该使用用户输入的来自正文(JSON)的数据向“roles”表添加一条记录。我使用Postman对此进行了测试,返回的只是一个新记录,其所有属性都设置为NULL。

例如,我将输入以下内容:

{
    "Name": "Lab Employee",
    "Description": "User only has read rights",
    "Tenant_rental": 1,
    "Property_Module": 0,
    "Employee_Management": 0,
    "Reports": 1,
    "administration": 1,
    "user_Password_access": 0,
    "Building_Management": 0,
    "Credit_Bureau": 1
}

把这个作为我的新唱片:

{
        "ID": 23,
        "Name": null,
        "Description": null,
        "Tenant_rental": null,
        "Property_Module": null,
        "Employee_Management": null,
        "Reports": null,
        "administration": null,
        "user_Password_access": null,
        "Building_Management": null,
        "Credit_Bureau": null
    }

我的角色类:

namespace U18043039_HW1.Models
{
    using System;
    using System.Collections.Generic;
    
    public partial class Roles
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Roles()
        {
            this.User_Table = new HashSet<User_Table>();
        }
    
        public int Role_ID { get; set; }
        public string Role_Name { get; set; }
        public string Role_Description { get; set; }
        public Nullable<bool> Role_Tenant_rental { get; set; }
        public Nullable<bool> Role_Property_Module { get; set; }
        public Nullable<bool> Role_Employee_Management { get; set; }
        public Nullable<bool> Role_Reports { get; set; }
        public Nullable<bool> Role_administration { get; set; }
        public Nullable<bool> Role_user_Password_access { get; set; }
        public Nullable<bool> Role_Building_Management { get; set; }
        public Nullable<bool> Role_Credit_Bureau { get; set; }
    
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<User_Table> User_Table { get; set; }
    }
}

共有1个答案

段成益
2023-03-14

使用此数据进行测试:

{
    "Role_Name": "Lab Employee",
    "Role_Description": "User only has read rights",
    "Role_Tenant_rental": True,
    "Role_Property_Module":False,
    ... and so on
}
 类似资料:
  • 我的域管理器是Office 365。 我希望它保留所有当前记录,但由于我的网站位于另一台服务器中,我已将“A”记录指向我的网站服务器IP。 我的问题是,我的网站DNS管理器是否会覆盖Office 365中的域管理器记录(Office 365管理域)?或者我的域管理器将忽略网站DNS管理器中设置的记录? 我这样问是因为我想保留Office 365中的所有电子邮件记录,并且只将我的域指向网站托管服务器

  • 我有以下代码: 我想删除脚本,我尝试使用c: set与不同的范围,但它不起作用。是否可以使用JSTL标签设置请求属性? 我试过了,但没有成功: 而且还 之后有一个包括: 显然,在包含的JSP中,请求属性不可见。

  • 根据Log4j 2手册: LoggerConfig(包括根LoggerConfig)可以配置属性,这些属性将添加到从ThreadContextMap复制的属性中。这些属性可以从应用程序、筛选器、布局等中引用,就像它们是线程上下文映射的一部分一样。 但是,我找不到怎么做。我尝试了以下方法: 使用此配置,ThreadContextMap将不会有任何“关注”键,并且状态记录器将输出: 尝试将属性属性属性

  • 我正在编写一个mdp文件,并且我正在寻找一种方法来指定(或修改)客户端为特定演示文稿所做的所有请求的HTTP标头。我想在超文本传输协议请求中添加一个授权字段。我希望在不编辑客户端sw的情况下这样做。 我已经阅读了ISO/IEC 23009-1,但我没有发现任何关于它的信息。有人知道怎么做吗?

  • 问题内容: 我需要所有已登录的SOAP请求,以及持续时间(处理请求所花费的时间)。 最好的方法是什么?看起来可以为Spring WebServices配置log4j,但是它将记录所有值吗? 将以下行添加到log4j.xml 编辑:我们实际上是在使用,而不是。另外,看起来可以通过配置PayloadLoggingInterceptor来做到这一点 但是我不确定日志消息会去哪里。我将该拦截器添加到了我们

  • 我以这种方式使用ant PropertyFile任务,目标是将属性写出到文件中: 问题是它写出连续的属性,它们之间有换行符。 候选值中没有换行符。问题是属性之间会出现换行符,如下所示: 我希望在蚂蚁中没有办法解决这个问题,如果我错了,请纠正我。有没有解决这个问题的标准方法? 我的默认猜测是,我应该在java中定义自己的ant任务来完成这个任务。