2017-01-04 2 views
0

Я получаю эту ошибку «Request URL Too Long», когда я попытался загрузить файл. В URL-адресе отображаются данные, которые я хочу загрузить, но они не загружаются.Request URL Too Long

Как я могу решить Request URL Too Long ошибка при загрузке

мой код

Javascript

<script> 
        function DownloadIndexController(possID) { 
         $.ajax({ 
          url: '@Url.Action("DownloadIndex", "Poss")', 
          contentType: 'application/json; charset=utf-8', 
          datatype: 'json', 
          data: { possID: possID }, 
          type: "GET", 
          success: function (returnValue) { 

           window.location = '/DownloadIndex/Poss' + returnValue; 
          } 
         }) 
        } 
      </script> 

Контроллер

[HttpGet] 
    public virtual ActionResult DownloadIndex(int possID) 
    { 
     try 
     { 
      possFilename = possFilename.Replace(",", ","); 
      string fullPath = Filelocation + possFilename; 
      return File(fullPath, System.Net.Mime.MediaTypeNames.Application.Octet, possFilename); 

     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
+3

Какая конкретная строка кода в вашем вопросе создает это исключение? –

+0

У меня есть отладка и нет ошибки. только эта ошибка отображается в браузере и на консоли –

+0

Подождите, вы возвращаете файл как операцию 'GET', а затем файл добавляется к URL-адресу? Вы действительно создаете URL-адрес, который выглядит как '/ DownloadIndex/Poss <содержимое файла здесь>'? –

ответ

2

Вы не можете использовать ajax для загрузки файла таким образом. Что вам нужно сделать, это, чтобы создать нормальную ссылку для загрузки каждого элемента в сетке, как:

@Html.ActionLink("Download", "DownloadIndex", "Home", new { possID = "123" }, null) 

Где Home это имя контроллера, и вы должны динамически добавлять possID для каждого элемента вместо жесткого кода 123 в моем примере.

+0

Спасибо, что работает. Я удалил весь вызов ajax, и он работает. Спасибо дружище –

1

В коде, вы загрузите файл с помощью Ajax, а затем перенаправляются на URL, содержащий полный файл только после того, как '/DownloadIndex/Poss'

Вы, вероятно, просто хочу, чтобы перенаправить в файл, без использования Ajax на всех:

<script> 
    function DownloadIndexController(possID) { 
     window.location = '/DownloadIndex/Poss?possID=' + possID; 
    } 
</script> 
+0

Я все еще получаю ту же ошибку. Я тестировал на IE, Edge и crome –