0

我在控制器中有一个下载配置的功能:

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
    };
}

它工作正常,但唯一的问题是它会自动下载文件。我想为用户提供更新名称和设置下载位置的可能性,即我希望在下载之前弹出一个“另存为”对话框。

我查看了多个来源,但找不到适用的东西。任何人都可以建议,应该怎么做?

提前致谢。

4

1 回答 1

0

不同的浏览器在“另存为”对话框的显示方面表现不同。进行任何控制的唯一方法是不向浏览器提供有关文件的数据类型或名称的提示。在这些情况下,浏览器别无选择,只能向用户询问文件名。

将“text/html”替换为“application/octet-stream”。这表示“这是一堆字节,但我不知道它们代表什么”。

删除FileDownloadName. 如果浏览器没有名称,则需要询问。

您可能需要执行上述一项或两项操作,具体取决于您关心的浏览器。

于 2018-05-22T12:44:04.067 回答