2017-10-11 62 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 
}