如何在ASP.NET Web API 2中使用可选的请求模型属性?

时间:2015-07-27 14:32:39

标签: c# asp.net asp.net-mvc asp.net-web-api

我正在编写一个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)

1 个答案:

答案 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