Asp.net web api asp.net Web API中的CreateResponse方法
调用此方法:Asp.net web api asp.net Web API中的CreateResponse方法,asp.net-web-api,Asp.net Web Api,调用此方法: public HttpResponseMessage PostProduct(Product item) { item = repository.Add(item); var response = this.Request.CreateResponse<Product>CreateResponse(HttpStatusCode.Created, item); string uri = Url.RouteUrl("DefaultApi", new
public HttpResponseMessage PostProduct(Product item)
{
item = repository.Add(item);
var response = this.Request.CreateResponse<Product>CreateResponse(HttpStatusCode.Created, item);
string uri = Url.RouteUrl("DefaultApi", new { id = item.Id });
response.Headers.Location = new Uri(uri);
return response;
}
公共HttpResponseMessage后期产品(产品项)
{
item=存储库。添加(item);
var response=this.Request.CreateResponseCreateResponse(HttpStatusCode.Created,item);
字符串uri=Url.RouteUrl(“DefaultApi”,新的{id=item.id});
response.Headers.Location=新Uri(Uri);
返回响应;
}
正在导致编译时错误:
'System.Web.HttpRequestBase' does not contain a definition for 'CreateResponse' and the
best extension method overload 'System.Net.Http.HttpRequestMessageExtensions.CreateResponse<T>
(System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode, T)' has some invalid arguments.
“System.Web.HttpRequestBase”不包含“CreateResponse”和
最佳扩展方法重载'System.Net.Http.HttpRequestMessageExtensions.CreateResponse
(System.Net.Http.HttpRequestMessage,System.Net.HttpStatusCode,T)“”具有一些无效参数。
这里我缺少什么?运行时类型的
项
可能不是产品
的实例。您应该能够做到这一点:
var response = Request.CreateResponse(HttpStatusCode.Created, item);
即使项
是产品
的一个实例,通用的
参数也是多余的,也不是必需的。如果使用ReSharper,它会告诉您“(泛型)类型参数规范是冗余的”
更新
您的类是从Controller
扩展还是从ApiController
扩展?错误应该是,'System.Net.Http.HttpRequestMessage'不包含…
的定义,而不是'System.Web.HttpRequestBase'不包含…
的定义
WebApi控制器应该从
ApiController
扩展,而不是从Controller
扩展。在MVC控制器中,this.Request
指向System.Web.HttpRequestBase
的实例。在WebAPI控制器中,this.Request
指向System.Net.Http.HttpRequestMessage
CreateResponse是在System.Net.Http
命名空间中定义的扩展方法。
确保在项目中添加对System.Net.Http
和System.Net.Http.Formatting
的引用,并添加正确的using指令:
C#:使用System.Net.Http代码>
VB:
Import System.Net.Http
请同时包括类定义,例如,public products控制器:ApiController{
好的。我想我知道了。类定义是:public class products控制器:Controller
什么是.Net核心?