Диалог принудительного сохранения в браузере - PullRequest
0 голосов
/ 29 июня 2018

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

Я пробовал несколько вариантов из SO, таких как Stream, FileResult, ActionResult, Response, но диалоговое окно сохранения не появляется вообще.

Вот функция:

public void DownloadParameters()
    {
        var byteArray = System.Text.Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(this.GetParameters()));
        var stream = new MemoryStream(byteArray);
        string fileName = "tmp.file";

        System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
        response.ClearContent();
        response.Clear();
        response.ContentType = "text/html";
        response.AddHeader("content-disposition", "attachment; filename="+fileName+";");
        response.BinaryWrite(byteArray);
        response.Flush();
        response.End();
    }

Есть ли другой способ добиться этого? Любое предложение приветствуется

1 Ответ

0 голосов
/ 29 июня 2018

Это может быть связано с типом контента.

Есть ли причина, по которой вы используете text / html?

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

Поскольку контент, очевидно, является json, более подходящее имя может быть "config.json", а тип контента должен быть "application / json".

Если вы используете это, должно появиться диалоговое окно сохранения.

...