Диалог "Сохранить как" перед загрузкой
У меня есть функция в контроллере, которая загружает конфигурации:
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
, Если у браузера нет имени, его нужно будет запросить.
Возможно, вам придется выполнить одно или оба из перечисленных выше действий, в зависимости от того, какие браузеры вам нужны.