Модель пуста, когда конечная точка попадает через почтальона - PullRequest
1 голос
/ 19 июня 2019

Кажется, что данные, которые я передаю через почтальона, не соответствуют модели, которая находится в методе контроллера.Я реализую конечную точку веб-API в приложении .Net для одновременной обработки нескольких загрузок файлов.Пользователь может выбрать несколько файлов и для каждого файла он может выбрать тип документа и дату.Есть две таблицы (родительская и дочерняя), в которые вставляются записи. В моем примере родительской таблицей является таблица DOCUMENT, а дочерние записи хранятся в таблице MANAGERSTRATEGY_DOCUMENT.Что-то не так с моей структурой JSON

Viewmodel

 public class DocumentUploadCreateViewModel
    {
        public int ManagerStrategyId { get; set; }
        public List<DocumentUploadCreateDetailsViewModel> DocumentUploadCreateDetailsViewModel = new List<DocumentUploadCreateDetailsViewModel>();
    }


 public class DocumentUploadCreateDetailsViewModel
    {
        public string Name { get; set; }
        public int DocumentTypeId { get; set; }
        public DateTime? DocumentDate { get; set; }
        public byte[] DocumentContent { get; set; }

    }

Код контроллера

[HttpPost]
        [SkipTokenAuthorization]
        [Route("api/documentupload/create")]
        public IHttpActionResult Create(DocumentUploadCreateViewModel model)
        {
            var mgrStrategyDocument = new MANAGERSTRATEGY_DOCUMENT();
        var mgrDocumentService = GetService<DOCUMENT>();
        var mgrStrategyDocumentService = GetService<MANAGERSTRATEGY_DOCUMENT>();

        if (model != null)
        {
            foreach (var obj in model.DocumentUploadCreateDetailsViewModel)
            {
                var mgrDocument = new DOCUMENT
                {
                    DOCUMENT_TYPE_ID = obj.DocumentTypeId,
                    DOCUMENT_DATE = obj.DocumentDate,
                    NAME = obj.Name
                };
                mgrDocument = mgrDocumentService.Create(mgrDocument);


                var mangerStrategyDocumentService = GetService<MANAGERSTRATEGY_DOCUMENT>();
                var mgrStrategyDocument1 = new MANAGERSTRATEGY_DOCUMENT()
                {
                    DOCUMENT_ID = mgrDocument.ID,
                    MANAGERSTRATEGY_ID = model.ManagerStrategyId

                };
                mgrStrategyDocument = mgrStrategyDocumentService.Create(mgrStrategyDocument1);
            }

        }
        return Ok(mgrStrategyDocument);

    }
    }

Почтальон

http://localhost:56888/api/documentupload/create


JSON

    {
    "ManagerStrategyId" : 5508,

    [
        "Name" : "x2",
        "DocumentTypeId" : 2,
        "DocumentDate" : "15/04/2010",
        "DocumentContent" : [71,107,98]
    ],

        [
        "Name" : "x3",
        "DocumentTypeId" : 3,
        "DocumentDate" : "15/04/2010",
        "DocumentContent" : [71,107,98]
    ],

        [
        "Name" : "x4",
        "DocumentTypeId" : 4,
        "DocumentDate" : "15/04/2010",
        "DocumentContent" : [71,107,98]
    ]
}

1 Ответ

0 голосов
/ 19 июня 2019

В вашем JSON отсутствует ключ для списка, а также синтаксис списка кажется неправильным.Попробуйте следующее:

{
"ManagerStrategyId":5508,
"DocumentUploadCreateDetailsViewModel":[
  {
     "Name":"x2",
     "DocumentTypeId":2,
     "DocumentDate":"2010-04-15",
     "DocumentContent":[
        71,
        107,
        98
     ]
  },
  {
     "Name":"x3",
     "DocumentTypeId":3,
     "DocumentDate":"2010-04-15",
     "DocumentContent":[
        71,
        107,
        98
     ]
  },
  {
     "Name":"x4",
     "DocumentTypeId":4,
     "DocumentDate":"2010-04-15",
     "DocumentContent":[
        71,
        107,
        98
     ]
  }
]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...