【问题标题】:System.Web.HttpRequestBase does not contain a definition for 'CreateResponse'System.Web.HttpRequestBase 不包含“CreateResponse”的定义
【发布时间】:2018-01-24 05:56:36
【问题描述】:

我在这个方法上遇到了这个错误:

        [HttpGet]            
        public HttpResponseMessage Search([ModelBinder(typeof(ApiDataTablesModelBinder))] IDataTablesRequest requestModel)
        {
            var sortedColumn = requestModel.Columns.GetSortedColumns().SingleOrDefault();

            bool isDesc = false;
            string sortField = "ID";

            // get all projects and order them
            var projects = lkp_surveyRepo.GetAll();//.OrderBy(sortField, isDesc).ToList();

            // filtered projects
            var filteredResults = projects;

            filteredResults = projects.Where(x => x.code == selectedDistrictID);

            var pagedResults = filteredResults.Skip(requestModel.Start).Take(requestModel.Length);
            var result = Request.CreateResponse(HttpStatusCode.OK, new DataTablesResponse(requestModel.Draw, pagedResults, filteredResults.Count(), projects.Count()));

            return result;
        }

我的控制器正在实现控制器:

public class HomeController : Controller
    {

我找到了这个问题,但答案对我没有帮助:

CreateResponse method in asp.net Web API

完全错误是:

错误 13 'System.Web.HttpRequestBase' 不包含定义 对于'CreateResponse'和最好的扩展方法重载 'System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode, T)' 有一些无效参数

你知道我做错了吗? CreateResponse 方法中的内容可能有问题...谢谢

【问题讨论】:

标签: asp.net-mvc http


【解决方案1】:

我感觉您继承了错误的基本控制器类型。如果你使用 WebAPI,你应该继承自 ApiController,而不是 Controller

ApiController 中,RequestSystem.Net.Http.HttpRequestMessage。在Controller 中,RequestSystem.Web.HttpRequestBase。所以扩展方法很接近,但是不正确的类型会导致签名方法不匹配。

【讨论】:

  • 我没有使用 WebAPI。控制器之前使用的是:控制器,我只是在下面添加了一个需要返回 HTTPResponse 的新方法,所以这是该类的新方法。
  • @user3461011 CreateResponseHttpResponseMessage 应该从 WebAPI 使用。在您的情况下,我要么创建一个新的 WebAPI 控制器,以便您可以使用这些成员,要么删除它们并返回 Json 或类似的 ViewResult,以便您可以像 API 一样行事。
  • 你是我的英雄。
  • 如何在asp.net core中使用HttpRequestMessage
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多