2017-10-11 25 views
0

我在我的API控制器下面的方法:关于请求主体中的控制器动作信息

[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" 
} 
+0

它有什么不同? – user12345

回答

0

我倾向于同意user12345同意,为什么有差别?

如果您绝对必须知道您可以以字符串形式读取原始主体并检查内容。

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