Как исправить нулевой список<HttpPostedFileBase>?

Я пытаюсь пройти ViewModel а также List<HttpPostedFileBase> от службы angularJS до контроллера ASP.NET. Я могу получить ViewModel но List<HttpPostedFileBase> нулевой.

HTML

<form id="frm" name="frm" enctype="multipart/form-data" action="#" method="post">
...
            <input type="submit" class="btn btn-warning btn-block" ng-click="mainCtrl.submit()" ng-disabled="frm.$invalid" value="Create"/>
...

Угловой Ctrl

self.submit = function () {
var data = {
    header: self.header,
    uploads: self.attachments
};

//Create new Service Request
var createServiceRequestHeader = ServiceRequestServices.createServiceRequestHeader(data)
.then(function successCallback(response) {
    ...
}, function errorCallback(response) { toastr.error(response.statusText); });
}

Угловой сервис

//Create ServiceRequest Header
service.createServiceRequestHeader = function (data) {
    var response = $http({
        method: 'POST',
        url: '/ServiceRequest/CreateHeader',
        data: { _servicerequestViewModel: data.header, uploads: data.uploads }
    });
    return response;
}

ASP.NET Controller

[HttpPost]
public ActionResult CreateHeader(ServiceRequestViewModel _servicerequestViewModel, List<HttpPostedFileBase> uploads)
{......}

Я попробовал следующее.

  • Я проверил в своих услугах, если uploads который содержит List<HttpPostedFileBase> является нулевым, но это не так.
  • Я уже пробовал решения, которые я мог найти в Интернете, как добавление enctype="multipart/form-data" в моей форме, но так как я использую input ng-clickЯ не думаю, что это торчит.
  • Я также попытался добавить undefined к моему service headers но это тоже не сработало.

Я также попробовал решение ниже, но это не сработало.

for (int i = 0; i < Request.Files.Count; i++ )
{
    HttpPostedFileBase upload = Request.Files[i];
    if (upload != null && upload.ContentLength > 0)
    {
        ....
    }
}

0 ответов

Другие вопросы по тегам