对于从Web API 2控制器返回,如果响应是OK(状态200),我可以返回内容与响应:
public IHttpActionResult Get()
{
string myResult = ...
return Ok(myResult);
}
如果可能的话,我希望在这里尽可能使用内置结果类型
我的问题是,对于另一种类型的响应(不是200),我如何用它返回消息(字符串)?例如,我可以这样做:
public IHttpActionResult Get()
{
return InternalServerError();
}
但这不是:
public IHttpActionResult Get()
{
return InternalServerError("Message describing the error here");
}
理想情况下,我希望这是一般化的,这样我就可以用IHttpActionResult的任何实现发送回消息。
我需要这样做(并建立我的响应消息):
public IHttpActionResult Get()
{
HttpResponseMessage responseMessage = ...;
return ResponseMessage(responseMessage);
}
还是有更好的办法?
我也有同样的问题。我想为我的api控制器创建自定义结果,像这样调用它们
return Ok("some text");
然后我这样做了:
1)使用singletone创建自定义结果类型
public sealed class EmptyResult : IHttpActionResult
{
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
return Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NoContent) { Content = new StringContent("Empty result") });
}
}
2)使用new方法创建自定义控制器:
public class CustomApiController : ApiController
{
public IHttpActionResult EmptyResult()
{
return new EmptyResult();
}
}
然后我可以在我的控制器中调用它们,像这样:
public IHttpActionResult SomeMethod()
{
return EmptyResult();
}
我也有同样的问题。我想为我的api控制器创建自定义结果,像这样调用它们
return Ok("some text");
然后我这样做了:
1)使用singletone创建自定义结果类型
public sealed class EmptyResult : IHttpActionResult
{
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
return Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NoContent) { Content = new StringContent("Empty result") });
}
}
2)使用new方法创建自定义控制器:
public class CustomApiController : ApiController
{
public IHttpActionResult EmptyResult()
{
return new EmptyResult();
}
}
然后我可以在我的控制器中调用它们,像这样:
public IHttpActionResult SomeMethod()
{
return EmptyResult();
}