Я нашел решение. Это не элегантно, но работает.
Поэтому мне не нужно было обязательно использовать ajax для выполнения запроса или для назначения функции кнопке. Я уверен, что проблема связана с JS и / или jQuery. Тем не менее, есть более простой способ сделать это.
Я изменил свою кнопку HTML на:
<a href="DescargarPDF/?itemId=@item.Id" target="_blank" class="btn btn-secondary btn-info">PDF</a>
так что это похоже на кнопку, но это действительно ссылка на метод моего контроллера. Я также удалил скрипт для этой кнопки, и теперь он загружает файл. Не с намеченным именем, но все же.
Спасибо всем. Удачного кодирования.
UPDATE
Я работал над тем же проектом, и мне кажется, я понял, почему мой PDF-файл выбрасывался в консоль.
Дело в том, что jQuery делает запрос, поэтому jQuery управляет ответом. Это просто. Если вы проверите официальные документы для .post()
, вы увидите следующее:
В функцию обратного вызова success передаются возвращенные данные, которые будут корневым элементом XML или текстовой строкой в зависимости от типа ответа MIME. Также передается текст статуса ответа.
Начиная с jQuery 1.5, функции обратного вызова также передается объект "jqXHR" (в jQuery 1.4 ему был передан объект XMLHttpRequest).
В большинстве реализаций указывается обработчик успеха.
А я не был, поэтому по умолчанию он просто перетаскивал его на консоль. Я надеюсь, что это проливает некоторый свет на проблему и помогает. Удачного кодирования.