2017-02-21 24 views
-1

Я использую этот код для многократного загрузки с jQueryajax в ASP.NETMVC:двойной загрузки файлов в сессии при использовании нескольких загрузки файлов в JQuery AJAX в ASP.NET MVC

public ActionResult GetFiles(HttpPostedFileBase NewsFilePath) 
{ 
    if (NewsFilePath != null) 
    { 
     var files = Session["Files"] == null ? 
      new List<HttpPostedFileBase>() : 
      (List<HttpPostedFileBase>)Session["Files"]; 
     files.Add(NewsFilePath); 
     Session["Files"] = files; 
    } 
    return Content(""); 
} 

, но у меня есть проблема с этим кодом.

  • когда я загрузить один файл, один файл хранится в сессии
  • , когда я загрузить два файла, 4 файлов хранится в сессии
  • , когда я загрузить три файла, 6 файлов сохраняются в сессия

В чем проблема?

+0

Вы прикрепляете его по одному или выбираете все и вызываете getfiles несколько раз? – Amit

+0

Кажется, вы всегда добавляете список '' Files '', который хранится в сеансе. Таким образом, этот список будет все больше и больше. –

+0

@ Присоединитесь один за другим – Kianoush

ответ

0

Использование .Distinct() при назначении файлов в Session

public ActionResult GetFiles(HttpPostedFileBase NewsFilePath) 
    { 
     if (NewsFilePath != null) 
     { 
      var files = Session["Files"] == null ? 
       new List<HttpPostedFileBase>() : 
       (List<HttpPostedFileBase>)Session["Files"]; 
      files.Add(NewsFilePath); 
      Session["Files"] = files.Distinct(); 
     } 
     return Content(""); 
    } 

Будем надеяться, что это решит вашу проблему, если нет, то оставить комментарий ниже.

+0

это не сработало. этот код все еще имеет проблему – Kianoush

+0

Хорошо, позвольте мне изменить логику, я обновлю ответ через некоторое время. –

+0

привет человек. вы найдете решение проблемы? я могу это найти. – Kianoush