控制器无法识别传递的属性

时间:2019-06-01 07:13:34

标签: c# asp.net-mvc asp.net-core

我正在使用ASP.NET Core创建Web api,但遇到了问题。我有一个发布请求,我想以JSON格式将一个Municipality对象传递给它。问题是我的属性Name具有属性react-file-viewer 。我通过将Postman与JSON有效负载[Required]一起使用来调用端点,并且在验证模型时,它会显示“名称字段是必需的”。即使确实提供了它。

我尝试使用{"Name": "London"}属性,但是它的问题是它不会给我验证错误,而只是说“输入无效”并给出一个空对象,因此不使用此属性属性给出了很多更好的错误。

Github:https://github.com/DeividasBrazenas/Taxes/blob/master/Taxes/Taxes/Controllers/BaseController.cs

BaseModel.cs

[FromBody]

Municipality.cs

public class BaseModel
{
    public int Id { get; set; }
}

MunicipalitiesController.cs

public class Municipality : BaseModel
{
    [Required]
    public string Name { get; set; }
    public ICollection<Tax> Taxes { get; set; }
}

POST请求的屏幕截图- enter image description here

1 个答案:

答案 0 :(得分:1)

为您当前的MunicipalitiesController

在下面进行更改
  1. 添加public async Task<IActionResult> Post(Municipality baseObject)FromBody

    [EnableQuery]
    [HttpPost]
    public async Task<IActionResult> Post([FromBody]Municipality baseObject)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
    
        await Context.Set<Municipality>().AddAsync(baseObject);
        await Context.SaveChangesAsync();
        return Created(baseObject);
    }
    
  2. 将json请求更改为小写。

    {
            "name":"1231"
    }