Request.CreateResponse ASP.NET

0

Witam,

Otóż mam następujący kontroler :

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Web;
using System.Web.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using API.DAL.Entities;
using DNSAP.API.Models;

namespace DNSAP.API.Controllers
{
    public class ValueController : ApiController
    {
       [Authorize]
        public HttpResponseMessage Post([FromBody]ValuesModels value)
        {
            if (ModelState.IsValid)
            {
                
                var result = Activity.GetActivity(value.Text, -1, "%");

               
                    return Request.CreateResponse<IEnumerable<Activity>>(
                  HttpStatusCode.OK,
                  result,
                  new MediaTypeHeaderValue("application/json") { CharSet = "utf-8" }
                   ); ;
            }
            else
            {
                return new HttpResponseMessage(HttpStatusCode.OK);
            }
        }
       

    }
} 

Kiedy próbuje zwrócić wartości poprzez "return Request.CreateResponse..." dostaję następujący błąd :

 {
  "Message": "An error has occurred.",
  "ExceptionMessage": "Nie odnaleziono metody: 'System.Net.Http.HttpRequestMessage System.Web.Http.ApiController.get_Request()'.",
  "ExceptionType": "System.MissingMethodException",
  "StackTrace": "   w DNSAP.API.Controllers.ValueController.Post(ValuesModels value)\r\n   w lambda_method(Closure , Object , Object[] )\r\n   w System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n   w System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n   w System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- Koniec śladu stosu z poprzedniej lokalizacji, w której wystąpił wyjątek ---\r\n   w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   w System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- Koniec śladu stosu z poprzedniej lokalizacji, w której wystąpił wyjątek ---\r\n   w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   w System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- Koniec śladu stosu z poprzedniej lokalizacji, w której wystąpił wyjątek ---\r\n   w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   w System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()\r\n--- Koniec śladu stosu z poprzedniej lokalizacji, w której wystąpił wyjątek ---\r\n   w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   w System.Web.Http.Controllers.AuthenticationFilterResult.<ExecuteAsync>d__0.MoveNext()\r\n--- Koniec śladu stosu z poprzedniej lokalizacji, w której wystąpił wyjątek ---\r\n   w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   w System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"
}

Przy postawieniu breakpointa przy wejściu do kontrolera debugger nawet tam nie wchodzi tylko wyrzuca od razu error.
Kiedy usunę Request.CreateResponse i zamiast tego wstawię "return new HttpResponseMessage(HttpStatusCode.OK);" wszystko działa.

Czy ktoś może miał podobny problem lub wie jak sobie z nim poradzić?

Z góry dziękuje za pomoc.

0

dodaj referencje do System.Net.Http.Formatting.dll

0

Pomogło ! Dzięki wielki ! :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1