Multipart / form-data форма отправки данных с AngularJS

0

Мне нужно отправить данные формы, как показано ниже, в URL-адрес, который является webapi, и метод отправлен

var surveyData = {
            Name: xyz,
            SetReminder: 'false',
            NoOfReminder: '0',
            StartDate: 'xyz',
            EndDate: 'xyz',
            Language: 'eng-us',
            Duration: '1',
            ApplicationName: 'xyz',
            SurveyTypeName: 'zxy'
        };

Я написал код ниже, который вызывает метод post wbeapi, но функция может отправлять данные, но почтовый метод не способен читать данные, которые отправляются с помощью угловых js.

function(surveyData) {
               return $http.post(URL , surveyData,{
                    headers: { 'Content-Type': 'multipart/form-data' }
                });
  • 0
    Я думаю, что первый ответ на этот вопрос содержит ответ, который вы ищете: stackoverflow.com/questions/24710503/…
  • 0
    этот код, указанный в ссылке, не работает
Теги:
angularjs-scope

2 ответа

0
Лучший ответ

если web api является Multipart/form-data, тогда вам нужно создать пару значений ключа в приведенной ниже форме, чтобы были созданы данные формы нескольких частей.

var objFormData = new FormData();
                for (var key in surveyData)
                    objFormData.append(key, surveyData[key]);

то вам необходимо отправить созданные данные формы нескольких частей, используя приведенный ниже код:

 return $http.post(URL, objFormData, {
                    transformRequest: angular.identity,
                    headers: { 'Content-Type': undefined }
                });
1

Использование:

var data = HttpContext.Current.Request.Form["surveyData"];

Получить данные json из вашей многостраничной формы.

Если ваши файлы с файлами multipart form contail, то для получения этих файлов используйте:

System.Web.HttpFileCollection postedfiles = System.Web.HttpContext.Current.Request.Files;

Также имейте в виду, что не используйте никаких параметров в методе действий контроллера.

Убедитесь, что вы импортируете эти пространства имен:

using System.Net.Http;
using System.Web;
using System.Web.Http;

РЕДАКТИРОВАТЬ :

измените свой javascript-код.

var data = new FormData();
data.append("surveyData", angular.toJson(surveyData));

Если вы хотите добавить изображения/другие, вы можете добавить их, используя следующий код.

//data.append("uploadedFile", $scope.files[0]);

Таким образом, ваш код будет:

function(surveyData) {
               return $http.post(URL , data,{
                    headers: { 'Content-Type': 'multipart/form-data' }
                });

Теперь вы сможете получать данные json, используя

var data = HttpContext.Current.Request.Form["surveyData"];

и images/otherfiles (если есть), используя

System.Web.HttpFileCollection postedfiles = System.Web.HttpContext.Current.Request.Files;
  • 0
    данные имеют нулевое значение, когда я использую var data = HttpContext.Current.Request.Form ["surveyData"];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню