如何避免将null实体对象传递给web api方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何避免将null实体对象传递给web api方法相关的知识,希望对你有一定的参考价值。

我有以下web api方法如下

public bool UpdateValidations([FromBody] ValidationKeyEntity validationKey)
{
    if (ModelState.IsValid)
    { 
        //my code here
    }
}

public class ValidationKeyEntity
{
    public int ValidationKeyId { get; set; }

    [MaxLength(Constants.maxStringLength)]
    public string Name { get; set; }

    public int DisplayId { get; set; }

    [MaxLength(Constants.maxStringLength)]
    public string CreatedBy { get; set; }
}

我正在使用Postman进行测试。我传递的不同json比ValidationKeyEntity对象为{“Vishal”:“vishal”}作为参数。但我的ModelState.IsValid仍然返回true。

如何避免接受除“ValidationKeyEntity”对象之外的其他json对象?

答案
  1. 使用RequiredAttribute将属性标记为requiredpublic class ValidationKeyEntity { [Required] public int ValidationKeyId { get; set; } [Required] public string Name { get; set; } [Required] public int DisplayId { get; set; } [Required] public string CreatedBy { get; set; } }
  2. 全球设置MissingMemberHandling以处理废物属性: var httpConfiguration = new HttpConfiguration(); httpConfiguration .Formatters .JsonFormatter .SerializerSettings .MissingMemberHandling = MissingMemberHandling.Error;

以上是关于如何避免将null实体对象传递给web api方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将json POST数据作为对象传递给Web API方法?

有没有办法避免将所有参数传递给函数[重复]

如何将字典参数传递给web-api方法?

我应该如何将多个参数传递给 ASP.Net Web API GET?

将多个参数传递给 Web API GET 方法

将对象类型作为参数传递给方法?