В настоящее время мы используем такой маршрут:
[HttpPost]
[Route("upload")]
public async Task<dynamic> Upload(dynamic uploadedData)
{
JArray files = uploadedData.pdfs;
// ...
}
Вместо того, чтобы использовать dynamic
, я хотел бы иметь схематическое представление о входящих данных. Поэтому я мог бы использовать такую установку, как класс, который определяет схему:
public class UploadRequest : JObject
{
public JArray pdfs { get; set; }
}
[HttpPost]
[Route("upload")]
public async Task<dynamic> Upload(UploadRequest uploadedData)
{
// Now can access the JArray via uploadedData.pdfs directly
// ...
}
Это правильный подход к этой ситуации? Или существует еще одна стандартная передовая практика для получения данных JSON через ASP.NET WebAPI?
В частности, этот подход в настоящее время не работает. Хотя мой небольшой класс схемы расширяет JObject, я получаю сообщение об ошибке
Словарь параметров содержит недопустимую запись для параметра 'uploadedData' для метода 'System.Threading.Tasks.Task`1 [System.Object] Upload (UploadRequest)' в 'EditPdfServer.Controllers.PdfFileController'. Словарь содержит значение типа "Newtonsoft.Json.Linq.JObject", но для параметра требуется значение типа "EditPdfServer.Controllers.PdfFileController + UploadRequest".
Итак, во-первых, похоже ли это на правильный подход? Во-вторых, есть ли лучший? В-третьих, почему этот подход не работает? Спасибо заранее.