#html #asp.net-mvc #angularjs #internet-explorer-8 #internet-explorer-9
#HTML #asp.net-mvc #angularjs #internet-explorer-8 #internet-explorer-9
Вопрос:
Я пытаюсь загрузить динамически сгенерированный файл с сервера, используя скрытую форму.
Ниже приведена угловая функция, которую я использую для отправки скрытой формы
$scope.downloadCsv = function() {
var dataset = JSON.stringify($scope.dataset);
var body = $('body');
var reportParamJson = angular.toJson($scope.dataset);
var hiddenForm = "<form action='/Reports/SaveTestCsv' method='POST' target='_blank'><input type='hidden' name='dataset' value='" dataset "'/ ><button id='submitCSV' type='submit'></button></form>";
body.append(hiddenForm);
$('#submitCSV').click();
}
Ниже приведен метод .net mvc для генерации ответа с помощью файла
[HttpPost]
public ActionResult SaveTestCsv(string dataset)
{
var data = JsonConvert.DeserializeObject<MyObject>(dataset);
var binary = getTestCSV(data);
var file = File(binary, "text/csv", "test.csv");
return file;
}
Ниже приведен соответствующий html-код с частичной html-страницы, которую я включаю в представление с помощью ng-include
<div><a href="#" ng-click="downloadCsv()">Download CSV</a></div>
<div ng-grid="gridOptions"></div>
.
Когда я нажимаю «Загрузить CSV», Chrome, FF и IE10 предлагают мне сохранить файл без обновления страницы / просмотра, но в IE8 / 9 страница обновляется, поэтому содержимое тега ng-include исчезает, в частности html, который я опубликовал выше, больше не отображается.присутствует.
Мне интересно, имеет ли это какое-то отношение к хэш-бангу в URL-адресе из IE8 / 9 и есть ли какой-либо способ это исправить?
Редактировать
В итоге я полностью удалил маршрутизацию из angular и просто использовал .net MVC для выполнения маршрутизации для меня, а затем он работает на IE8