在ASP.NET WebAPI方法调用中使用IHttpActionResult
作为返回类型有什么意义
由于这是一个界面,我们如何以界面的形式返回结果?
有人可以解释这背后的概念吗?
在此先感谢!!
答案 0 :(得分:1)
基于Microsoft ASP.NET文档,
{1}}接口是在Web API 2中引入的。本质上,它定义了一个HttpResponseMessage工厂。以下是使用IHttpActionResult接口的一些优点:
IHttpActionResult包含一个方法ExecuteAsync,它异步创建一个HttpResponseMessage实例。
IHttpActionResult
如果控制器操作返回IHttpActionResult,则Web API调用ExecuteAsync方法以创建HttpResponseMessage。然后它将HttpResponseMessage转换为HTTP响应消息。
以下是IHttpActionResult的简单实现,它创建了纯文本响应:
public interface IHttpActionResult
{
Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken);
}
控制器中的另一个示例:
public class TextResult : IHttpActionResult
{
string _value;
HttpRequestMessage _request;
public TextResult(string value, HttpRequestMessage request)
{
_value = value;
_request = request;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var response = new HttpResponseMessage()
{
Content = new StringContent(_value),
RequestMessage = _request
};
return Task.FromResult(response);
}
}
及其public class ValuesController : ApiController
{
public IHttpActionResult Get()
{
return new TextResult("hello", Request);
}
}
:
HTTP / 1.1 200 OK Content-Length:5 Content-Type:text / plain; charset = utf-8服务器:Microsoft-IIS / 8。0日期:星期一,2014年1月27日 格林尼治标准时间08:53:35
您好
我希望这会有所帮助。祝好运。