Asp.net web api 在web api中为PUT请求绑定模型之前验证参数

Asp.net web api 在web api中为PUT请求绑定模型之前验证参数,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,我如何区分作为String.Empty发送的参数和作为PUT请求的参数绑定根本不发送的参数。 我的请求类如下所示: public class Person { string name {get; set;} int? age {get; set;} } 我的问题是绑定 当我的用户以 { "name":"ABC" } 在上述情况下,年龄参数映射为null 然而,当请求看起来像下面这样时,它也映射为null。我想在下面的情况下抛出一个验证错误。 如何在asp net核心web

我如何区分作为String.Empty发送的参数和作为PUT请求的参数绑定根本不发送的参数。 我的请求类如下所示:

public class Person
{
   string name {get; set;}
   int? age {get; set;}
}
我的问题是绑定 当我的用户以

{
   "name":"ABC"
}
在上述情况下,年龄参数映射为null 然而,当请求看起来像下面这样时,它也映射为null。我想在下面的情况下抛出一个验证错误。 如何在asp net核心web api中实现它

{
   "name":"ABC",
   "age":""
}
你应该看一看

您可以在可为空的int上添加
Range
属性。这将只允许整数或null,而不允许空字符串

public class Person
{
   string name {get; set;}
   [Range(0,300)]
   int? age {get; set;}
}
如果数据注释未完全填充,则会将modelstate设置为false

然后检查controller方法中的modelstate

if (ModelState.IsValid)
{
    // your logic

    return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}

请在
if条件下尝试使用此
字符串。IsNullOrEmpty(Person.age.ToString())
,然后显示错误消息。@BasantaMatia我只想在输入有空字符串时显示错误。使用String.IsNullOrEmpty(Person.age.ToString())时,即使用户未在所有位置传递值,它也会引发验证错误。我无法理解,您已经声明,在这两种情况下,它都映射为null。那有什么问题?如果(String.IsNullOrEmpty(Person.age))//错误消息