Asp.net web api 没有MediaTypeFormatter可用于读取类型为的对象

Asp.net web api 没有MediaTypeFormatter可用于读取类型为的对象,asp.net-web-api,Asp.net Web Api,错误是 “”消息“:”请求包含实体正文,但没有内容类型标头。此资源不支持推断的媒体类型“应用程序/八位字节流” “ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“application/octet stream”的内容中读取“Expression`1[]”类型的对象。”, “ExceptionType”:“System.Net.Http.UnsupportedMediaTypeException” “StackTrace”:“在System.Ne

错误是

“”消息“:”请求包含实体正文,但没有内容类型标头。此资源不支持推断的媒体类型“应用程序/八位字节流”

“ExceptionMessage”:“没有MediaTypeFormatter可用于从媒体类型为“application/octet stream”的内容中读取“Expression`1[]”类型的对象。”, “ExceptionType”:“System.Net.Http.UnsupportedMediaTypeException”

“StackTrace”:“在System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent内容,类型,IEnumerable
1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)\r\n在System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage请求,类型类型,IEnumerable
1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)“}

我的代码:

public class ParticipantEventController : ApiController
{
    private readonly IParticipantEventRepository repository;


    public ParticipantEventController()
    {
        repository = new ParticipantEventRepository();
    }

    [Route("api/EventDetails/{EventId}")]
    [HttpGet]
     public IEnumerable<EventDTO> GetEventDetails(Guid EventId, params Expression<Func<Event, object>>[] includeProperties)
    {
      IEnumerable<Event> participantevent = repository.FindbyEvent(EventId,x=>x.Id,x=>x.Contents,x=>x.EventRegisteration).ToList();
      var eventdb = Mapper.Map<IEnumerable<EventDTO>>(participantevent);
      return eventdb;

    }
}
public类ParticipantEventController:ApiController
{
专用只读iParticipAntefrontRepository存储库;
公众参与事件控制器()
{
repository=新参与者Ventrepository();
}
[路由(“api/EventDetails/{EventId}”)]
[HttpGet]
public IEnumerable GetEventDetails(Guid EventId,参数表达式[]includeProperties)
{
IEnumerable participantevent=repository.FindbyEvent(EventId,x=>x.Id,x=>x.Contents,x=>x.eventregistration).ToList();
var eventdb=Mapper.Map(participantevent);
返回eventdb;
}
}

您需要实现自定义的
MediaTypeFormatter
,它可以序列化/反序列化
表达式[]类型的对象
。默认情况下,webapi的“媒体类型格式化程序”列表中没有指定可以执行此操作的格式化程序。此外,当您通过线路发送某些数据时,还需要设置
内容类型
HTTP头值,以便服务器能够了解其在该类型上的处理能力。有关更多信息,请参阅您需要实现nt您的自定义
MediaTypeFormatter
,它可以序列化/反序列化
Expression[]类型的对象
。默认情况下,webapi的“媒体类型格式化程序”列表中没有指定可以执行此操作的格式化程序。此外,当您通过线路发送某些数据时,还需要设置
内容类型
HTTP头值,以便服务器能够了解其在该类型上的处理能力。有关更多信息,请参阅