如何让这个控制器接受不同类型的json? [英] How can I make this controller accept different types of json?
本文介绍了如何让这个控制器接受不同类型的json?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嘿伙计们,我的api中有这个控制器:
Hey guys, I have this controller in my api:
// POST: api/Events
[HttpPost]
[ResponseType(typeof(Event))]
public async Task<IHttpActionResult> PostBook(Event events)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Events.Add(events);
await db.SaveChangesAsync();
// New code:
// Load author name
db.Entry(events).Reference(e => e.Name).Load();
var dto = new EventDto()
{
Name = events.Name,
Project = events.Project,
Objectives = events.Objectives,
City = events.City,
Country = events.Country,
EventStart = events.EventStart,
Departure = events.Departure,
Arrival = events.Arrival,
Registration = events.Registration,
NationalTransportation = events.NationalTransportation,
Accommodation = events.Accommodation,
AcNumberNights = events.AcNumberNights,
AcPreferHotel = events.AcPreferHotel,
AcPreferHotelUrl = events.AcPreferHotelUrl,
Flight = events.Flight,
FlDeparture = events.FlDeparture,
FlDepartPrefer = events.FlDepartPrefer,
FlDepartPreferUrl = events.FlDepartPreferUrl,
FlReturn = events.FlReturn,
FlRetPrefer = events.FlRetPrefer,
FlRetPreferUrl = events.FlRetPreferUrl,
Notes = events.Notes,
Files = events.Files,
Status = events.Status
};
return CreatedAtRoute("DefaultApi", new { id = events.Id }, dto);
}
而且我正在使用Postman来测试它...但是它不起作用......
And I'm using Postman to test it... but it's not working...
{
"Message": "The request entity's media type 'multipart/form-data' is not supported for this resource.",
"ExceptionMessage": "No MediaTypeFormatter is available to read an object of type 'Event' from content with media type 'multipart/form-data'.",
"ExceptionType": "System.Net.Http.UnsupportedMediaTypeException",
"StackTrace": " at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpContentExtensions.ReadAsAsync(HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)"
}
它说明了这一点。 ..任何想法如何解决?
It says this... any idea how to fix it?
推荐答案
这可能会有所帮助: ASP.NET WebApi:MultipartDataMediaFormatter [ ^ ]
This might help: ASP.NET WebApi: MultipartDataMediaFormatter[^]
这篇关于如何让这个控制器接受不同类型的json?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文