我在控制器中有一个下载配置的功能:
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
};
}
它工作正常,但唯一的问题是它会自动下载文件。我想为用户提供更新名称和设置下载位置的可能性,即我希望在下载之前弹出"另存为"对话框。
我查看了多个来源,但找不到适用的东西。谁能建议,应该怎么做?
提前谢谢。
不同的浏览器在"另存为"对话框的显示方面行为不同。进行任何控制的唯一方法是不向浏览器提供有关文件类型或文件名称的提示。在这些情况下,浏览器别无选择,只能要求用户输入文件名。
将"text/html"替换为"application/octet-stream"。 这说"这里有一堆字节,但我不知道它们代表什么"。
删除FileDownloadName
。如果浏览器没有名称,则需要询问一个名称。
您可能需要执行上述一项或两项操作,具体取决于您关心的浏览器。