我正在编写一个ASP.NET Web API 2项目。我创建了一个请求模型,其中包含将作为API输入的属性。对于GET请求,我枚举方法参数列表中的属性,对于POST请求,我将Request对象作为唯一参数。
如何在Request对象中指定可选属性?我想指定“Count”作为请求模型的可选参数。这会诀窍吗?
对于POST方法:
class Request{
public int id {get;set;}
public int? Count{get;set;}
}
对于GET方法:
public Response MyActionMethod(int id, int? Count)
答案 0 :(得分:1)
在发布问题之前,你自己试过吗?
是的,这可以解决问题。更恰当的例子:
[HttpPost]
virtual object Foo([FromBody] Request req);
// query parameters (as object)
[HttpGet]
virtual object Foo([FromUri] Request req);
// query parameters (as arguments)
[HttpGet]
virtual object Foo(int id, int? count = null);
//uri + query parameters
[HttpGet]
[Route('/path/:id')]
virtual object Foo(int id, int? count = null);
您可以只使用int?
而不是int
,而0
是对象Request
中的默认值,对于方法参数,您应该设置默认值你自己int count = 0
。