Member 12697982 Ответов: 1

Передайте сериализованные данные формы, пути загрузки файлов и другие параметры в метод контроллера


Привет там, может кто-нибудь, пожалуйста, помогите мне, как передать сериализованные данные формы , пути загрузки файлов и остальные параметры, такие как
ВАР OfficeHolder_id="123", ВАР AccountDetail_Id="789", ВАР contact_person_id="8910" в метод контроллера, используя метод POST на AJAX.
некоторые примеры кода приведены ниже


Просмотр кода
@использование (в формате HTML.Бигинформ("SaveApplication", "CreateApplicationFromSearch", FormMethod.Post, new { enctype = " multipart/form-data" }))
{

<input type="file" id="specific_Item" name="specific_Item" multiple="multiple"/> 
			<input type="file" id="Position_Description" name="Position_Description" multiple="multiple"/>
                        <input type="file" id="Employment_Contract" name="Employment_Contract" multiple="multiple"/>






метод контроллера
[HttpPost]
public ActionResult SaveApplication(приложение tr_applications,
Интерфейс IEnumerable&ЛТ;httppostedfilebase&ГТ; specific_Item, интерфейс IEnumerable&ЛТ;httppostedfilebase&ГТ; Position_Description,
IEnumerable & lt;httppostedfilebase> Employment_Contract,string OfficeHolder_id, int? AccountDetail_Id, строка contact_person_id)

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

$('#btnSaveClose'). click (функция () {
ВАР fileupload с = $("#Resolution_ToApply").получить(0).файлы;
var files = fileUpload.файлы;
var fileData= новые данные формы();
// Зацикливание всех файлов и добавление их в объект FormData
for (var i = 0; i & lt; files.длина; i++) {
данным.добавить(файлы[я].имя файлов[я]);
}
$.Аякс({
url: "/ CreateApplicationFromSearch/SaveAndCloseApplication",
тип: "пост",
contentType: false, / / не устанавливать заголовок содержимого
processData: false, / / не обрабатывать данные
сведения: данным,
успех: функция (ответ) {
if (response != null & & amp; response. success) {
} еще {
предупреждение(ответ.responseText);
}
},
ошибка: функция (ответ) {

alert ("ошибка!" + response. responseText);}
});
});

1 Ответов

Рейтинг:
8

Richard Deeming

Попробуй:

$('#btnSaveClose').click(function(evt){
    // Stop the button from submitting the form:
    evt.preventDefault();
    
    // Serialize the entire form:
    var data = new FormData(this.form);
    
    $.ajax({
        url: "/CreateApplicationFromSearch/SaveApplication", // NB: Use the correct action name
        type: "POST",
        data: data,
        processData: false,
        contentType: false,
        success: function(response) {
            ...
        },
        error: function(response) {
            ...
        }
    });
});

Использование объектов FormData-извлечение объекта FormData из HTML-формы[^]


Member 12697982

Огромное спасибо, это решение сработало, я боролся с этой проблемой , никогда не думал, что это будет так просто