我在这个方法上遇到这个错误:
[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;
}
Run Code Online (Sandbox Code Playgroud)
我的控制器正在实现Controller:
public class HomeController : Controller
{
Run Code Online (Sandbox Code Playgroud)
我发现了这个问题,但答案对我没有帮助:
asp.net Web API中的CreateResponse方法
完整的错误是:
错误13"System.Web.HttpRequestBase"不包含关于"CreateResponse"的定义和最佳的扩展方法过载"System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage,System.Net.HttpStatusCode,T )'有一些无效的论点
你看到我做错了吗?也许这个CreateResponse
方法里面有什么问题...谢谢
Ste*_*n V 19
我有一种感觉,你继承了错误的基本控制器类型.如果您使用的是WebAPI,则应继承而ApiController
不是继承Controller
.
在ApiController
,Request
是System.Net.Http.HttpRequestMessage
.在Controller
,Request
是System.Web.HttpRequestBase
.所以扩展方法很接近,但是不正确的类型会给你签名方法不匹配.
归档时间: |
|
查看次数: |
14867 次 |
最近记录: |