Диалог "Сохранить как" перед загрузкой

У меня есть функция в контроллере, которая загружает конфигурации:

public FileStreamResult SaveData()
{
    var toJson = JsonConvert.SerializeObject(this.GetData());
    var byteArray = System.Text.Encoding.ASCII.GetBytes(toJson);
    var stream = new MemoryStream(byteArray);
    string fileName = "Configuration.json";
    this.GetData().Save = false;
    return new FileStreamResult(stream, "text/html")
    {
        FileDownloadName = fName
    };
}

Он работает нормально, но единственная проблема заключается в том, что он загружает файл автоматически. Я хочу предоставить пользователю возможность обновить имя и указать место загрузки, т.е. я хочу, чтобы перед загрузкой всплыло диалоговое окно "Сохранить как".

Я посмотрел несколько источников, но не могу найти что-то, что будет применимо. Кто-нибудь может подсказать, как это сделать?

Заранее спасибо.

1 ответ

Различные браузеры ведут себя по-разному в отношении отображения диалога "Сохранить как". Единственный способ получить какой-либо контроль - не давать браузеру подсказки относительно типа данных или имени файла. В этих случаях браузеры не имеют другого выбора, кроме как запросить у пользователя имя файла.

Замените "text / html" на "application / octet-stream". здесь написано: "Вот куча байтов, но я не знаю, что они представляют".

Удалить FileDownloadName, Если у браузера нет имени, его нужно будет запросить.

Возможно, вам придется выполнить одно или оба из перечисленных выше действий, в зависимости от того, какие браузеры вам нужны.

Другие вопросы по тегам