我什么时候应该在Web api中使用HttpRequestMessage作为参数

Hel*_*rld 5 asp.net-web-api

我什么时候使用第一个动作?

public HttpResponseMessage Put(HttpRequestMessage message)
{

}
Run Code Online (Sandbox Code Playgroud)

我几乎总是只看到这种方式.也许是因为它很容易映射到一个完整的网址?

public HttpResponseMessage Put(int id)
{

}
Run Code Online (Sandbox Code Playgroud)

adr*_*nks 6

public HttpResponseMessage Put(HttpRequestMessage message)
Run Code Online (Sandbox Code Playgroud)

相当于:

public HttpResponseMessage Put()
Run Code Online (Sandbox Code Playgroud)

HttpRequestMessage参数自动绑定,以便您可以在控制器方法中获取请求信息(如果需要)().如果您不需要访问它,请省略它.

如果您需要通过id,您将需要:

public HttpResponseMessage Put(HttpRequestMessage message, int id)
Run Code Online (Sandbox Code Playgroud)

  • @HelloWorld您还可以从Controller上的Request属性访问请求.将请求作为参数传递仅适用于那些认为它看起来更漂亮的人:-) (4认同)