Как передать массив файлов и текст AJAX в контроллер

149
22 октября 2019, 11:00

Я формирую FormData из файлов и передаю в контроллер, но мне так же нужно передавать туда текст из TextArea. Вот мой код на JS :

     function createFormData(images) {
                var description = $('#textArea').val();
                var formImage = new FormData();
                for (var i = 0; i < images.length; i++) {
                    formImage.append(i, images[i]); 
                }
                formImage.append('desc', description);
                uploadFormData(formImage);               
            }
 function uploadFormData(formData) { 
                $.ajax({
                    url: '@Url.Action("PhotoSessionInfo", "Home")',
                    type: "POST",
                    data: formData,
                    contentType: false,
                    cache: false,
                    processData: false,
                    success: function (response) {
                        console.log("success");
                        $('#container_').html(response);
                    }
                });
            }

Вот код метода контроллера:

           [HttpPost]
    public PartialViewResult PhotoSessionInfo()
    {
        if (Request.IsAjaxRequest())
        {
            string fileName = "";
            string fileURL = "";
            foreach (string file in Request.Files)
            {
                var upload = Request.Files[file];
                if (upload != null )
                {
                    // получаем имя файла
                    int size = upload.ContentLength;
                    fileName = System.IO.Path.GetFileName(upload.FileName);
                    try
                    {
                         fileURL = Server.MapPath("~/App_Data/TemprPhotos/photos/" + fileName);
                         upload.SaveAs(fileURL);
                    }
                    catch
                    {
                    }
                }
            }
            ViewBag.Message = fileURL;
            return PartialView("info");
        }   
        return PartialView("Shared/Error");
    }

Понятно, что в контролер в var upload = Request.Files[file] приходят только файлы, но как принять и строку?

Answer 1

Добавьте в action-метод параметр с таким именем.

[HttpPost]
public PartialViewResult PhotoSessionInfo(string desc)
{
  ...
READ ALSO
Связать фото товара с товам

Связать фото товара с товам

Всем привет! Изучаю php и mysqlНе могу сообразить как правильно использовать БД для сохранения товара

142
Таксономии Wordpress как вывести?

Таксономии Wordpress как вывести?

По верстке вы видите что мне нужно элементы таксономии "Skills" вывести в типе записи "Portfolio" но я не нашел нигде как это сделатьЕсть ли в Wordpress...

178