控制器操作中有关请求主体的信息

时间:2017-10-11 15:27:28

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

我的api-controller中有以下方法:

[HttpPut("{id}")]
public IActionResult Put(int id, [FromBody]MyModel model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest();
    }
    // Here I want to know more about model.SomeReferenceId
    return NoContent();
}

为MyModel:

public class MyModel
{
    [Required]
    public string Name { get; set; }

    public int? SomeReferenceId { get; set; }
}

现在我想知道请求中是否包含SomeReferenceId但是值为空,或者请求中是否包含SomeReferenceId

基本上我想知道请求正文是否

{
    Name: "Some Name",
    SomeReferenceId: null
}

{
    Name: "Some Name"
}

1 个答案:

答案 0 :(得分:0)

我倾向于同意user12345,为什么会有所作为呢?

如果你绝对必须知道你可以将原始体读作字符串并检查内容。

using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{  
    var rawBody = reader.ReadToEnd();
    // check rawBody for presence of field
}