Мне нужно отправить данные формы, как показано ниже, в 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' }
});
если 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 }
});
Использование:
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;