ModelStateDictionairy 格式错误的 json web api

Baklap4

我使用 modelstate 属性来检查我的模型是否有效。这一切都很好,但是当我向我的 json 主体添加更多属性(我的模型中不存在)时,它说模型仍然有效。

如何检查发送到匹配 C# 模型的 json 正文?

这是我现在的模型:

public class User
    {
        public int Id { get; set; }
        public string IdentityServerId { get; set; }
        [Required(ErrorMessage = "Email is required")]
        [EmailAddress(ErrorMessage = "Not a valid emailaddress")]
        public string Email { get; set; }
        [Required(ErrorMessage = "Name is required")]
        public string Name { get; set; }
        public bool IsActive { get; set; }
    }

格式正确的 json 将是:

{
    "Name": "Klaas",
    "Email": "eifjelfij@sdf"
}

这给出了一个 200 OK 创建相应的用户。

但是,当我发送此 json 时:

{
    "Name": "Arjan",
    "Email": "eifjelfij@sdf",
    "eifj":"eflijelfij"
}

它仍然会创建用户,但我很乐意为用户提供错误消息而不是用户创建。

您可以在应用程序启动期间更改 JSON.NET 设置以将不存在的属性处理为错误...

services.AddMvc()
    .AddJsonOptions(options =>
    {
        options.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Error;
    });

这应该会导致User控制器操作中的参数为null,从而导致验证失败。

在你的 Action 中,你也可以专门处理它。

public async Task<IActionResult> Post([FromBody]Models.User user)
{
    if(!ModelState.IsValid) 
    {
        if(user==null)
        {
            // user is null, which means we couldn't deserialize it or 
            // no data was sent with the request
            return BadRequest(new { Error = "Invalid formatted data." });
        }

        // return errors, since we know user is not null
        return BadRequest(ModelState);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Web API以错误的格式发送JSON对象

来自分类Dev

如何使Web API以所需的格式返回json?

来自分类Dev

Web API错误处理返回json

来自分类Dev

Python-Spotify API返回错误400“格式错误的JSON”

来自分类Dev

Angularjs和Web Api-JSON格式问题

来自分类Dev

AngularJS和Web Api-JSON格式问题

来自分类Dev

使用Web API Get()正确格式化JSON

来自分类Dev

WEB API + ASP.NET尝试以json格式显示来自WEB.API的数据

来自分类Dev

Python放置请求。Spotify API放置请求格式错误的Json

来自分类Dev

如何使用React Native Fetch()从API检索格式错误的json

来自分类Dev

从R呼叫时,来自Google Directions API的格式错误的JSON

来自分类Dev

断言失败:`AdapterError`需要json-api格式的错误数组

来自分类Dev

使用Web API MS CRM时的JSON错误

来自分类Dev

Web Api 2404错误

来自分类Dev

JSON响应格式错误

来自分类Dev

GET的格式错误的Json

来自分类Dev

解析JSON格式的错误

来自分类Dev

REST Web服务JSON格式

来自分类Dev

如何在ASP.NET Core Web API中配置JSON格式缩进

来自分类Dev

Json格式。使用Web Api控制器,ASP.NET MVC缩进

来自分类Dev

来自React组件的Web Api以字符串格式返回json

来自分类Dev

Json格式。使用Web Api控制器,ASP.NET MVC缩进

来自分类Dev

对Web API 2使用自定义JSON格式化程序

来自分类Dev

iOS Swift-Google Place API(Web)以奇怪的格式返回JSON

来自分类Dev

从Web API返回camelCased JSON

来自分类Dev

Angular 2 / Web Api-json解析错误语法错误输入意外结束

来自分类Dev

使用 Json 和 AJAX 在 Web API 中返回错误的请求错误

来自分类Dev

JSON格式的REST API响应

来自分类Dev

JSON格式的Microsoft Translator Api

Related 相关文章

热门标签

归档