Dawood507 Ответов: 1

Список объектов не может быть передан контроллеру MVC точно так же как попадание в консоль


Я пытаюсь передать список массивов объектов контроллеру mvc с помощью ngFileUpload, потому что с ним нужно отправить несколько изображений.

Клиентский

app.controller('ProprietorController', function ($http, $scope, Upload) {
var existRegDetailVals = [];
$scope.CreateProprietor = function () {
if (Trade.length !== 0) {
    for (var i = 0; i <= Trade.length - 1; i++) {
         existRegDetailVals[i] = {};
         existRegDetailVals[i].RegistrationType = Trade[i].SourceName;
         existRegDetailVals[i].DateOfRegistration = Trade[i].DateRegistration;
         existRegDetailVals[i].RenewalDate = Trade[i].RenewalDate;
     }
     console.log(existRegDetailVals);
}
Upload.upload({
               url: '/Admin/UserManagement/CreateProprietor',
               data: {
                      files: AllProprietorFiles,objExistRegList: existRegDetailVals
                     }
                  }).then(function (response) {
 
                  });
}
})


Серверный
[HttpPost]
public ContentResult CreateProprietor(List<ExistingRegistrationDetail> objExistRegList)
{

}

файл класса
public partial class ExistingRegistrationDetail
    {
        public int exRegID { get; set; }
        public string RegistrationType { get; set; }
        public Nullable<System.DateTime> DateOfRegistration { get; set; }
        public Nullable<System.DateTime> RenewalDate { get; set; }
    }

Консольный Выход

(3) [{…}, {…}, {…}]0: 
{RegistrationType: "Tradelicense", DateOfRegistration: "01/08/2020", RenewalDate: "08/08/2020"}1: 
{RegistrationType: "Tradelicense", DateOfRegistration: "09/08/2020", RenewalDate: "15/08/2020"}2: 
{RegistrationType: "Sec 56 regn", DateOfRegistration: "16/08/2020", RenewalDate: "22/08/2020"}length: 3__proto__: Array(0)


Выход контроллера MVC при отладке

https://i.stack.imgur.com/QrjRc.png

Что я уже пробовал:

в первом списке получаем 3 параметра правильно как есть, но в следующих списках его оставляем по одному значению..как получить именно то, что есть в качестве консольного вывода?

1 Ответов

Рейтинг:
0

Richard Deeming

Похоже, что ваш сервер использует языковой стандарт США и ожидает, что даты будут отформатированы следующим образом MM/dd/yyyy, в то время как вы передаете их как dd/MM/yyyy.

Три даты, которые работают, неоднозначны между двумя форматами, и в американском формате будут интерпретироваться как 8 января, 8 августа и 8 сентября соответственно.

Три даты, которые не работают, действительны для dd/MM/yyyy, но не для того, чтобы MM/dd/yyyy- значит , их бросают.

Попробуйте передать свои даты, используя однозначный формат - например: yyyy/MM/dd Это должно работать независимо от настроек локали вашего сервера.