我正在开发一个具有下载一些记录并将其保存为文本文件的功能的应用程序。如果我为结果文件放置一个静态位置,它就可以工作。我想让用户决定他们想要保存这个文件的位置。Asp.Net Core2.2MVC中是否有SaveFileDialog?
我在控制器中的下载操作如下:
public async Task<IActionResult> DownloadList([Bind("Id,isDownload")] BdoPE bdoPE)
{
UserDetails();
string cncuser = ViewBag.DisplayName;
var config = new CsvHelper.Configuration.Configuration();
config.Delimiter = "\t";
var records = new List<BdoRpt>();
var record = _context.bdoPEs.Where(
c => c.DocType != null &&
c.isDownloaded == false &&
c.CompanyCode != null &&
c.AssignNum != null &&
c.ItemText != null &&
c.ItemText2 != null &&
c.isDownloaded == false &&
c.MarketerZ2 == cncuser).ToList();
if (record.Count > 0)
{
foreach (var data in record)
{
records.Add(new BdoRpt()
{
DocDateInDoc = data.DocDateInDoc,
DocType = data.DocType,
CompanyCode = data.CompanyCode,
PosDateInDoc = data.PosDateInDoc,
FiscalPeriod = data.FiscalPeriod,
CurrentKey = data.CurrentKey,
RefDocNum = data.RefDocNum,
DocHeadT = data.DocHeadT,
PosKeyInNextLine = data.PosKeyInNextLine,
AccMatNextLine = data.AccMatNextLine,
AmountDocCur = data.AmountDocCur,
ValDate = data.ValDate,
AssignNum = data.AssignNum,
ItemText = data.ItemText,
PosKeyInNextLine2 = data.PosKeyInNextLine2,
AccMatNextLine2 = data.AccMatNextLine2,
AmountDocCur2 = data.AmountDocCur2,
BaseDateDueCal = data.BaseDateDueCal,
ItemText2 = data.ItemText2,
});
}
using (var writer = new StreamWriter("C:\\file.txt")) // this is the static location
using (var csv = new CsvWriter(writer, config))
{
csv.WriteRecords(records);
}
recordDownloaded();
var bdope = _context.bdoPEs.Where(
c => c.DocType != null &&
c.isDownloaded == false &&
c.CompanyCode != null &&
c.AssignNum != null &&
c.ItemText != null &&
c.ItemText2 != null &&
c.isDownloaded == false).ToList();
foreach (var data in bdope)
{
data.isDownloaded = true;
}
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Lsmw));
}
else
{
NoRecordFound();
return RedirectToAction(nameof(Lsmw));
}
}
在我的代码中,当前只是驱动器C:\上的文本文件
发布于 2019-10-23 08:14:28
发布于 2019-10-23 10:25:39
无法直接从应用程序显示保存对话框。您应该返回一个FileResult或任何派生实现,并让浏览器决定如何处理您的数据。有一个函数可以在这方面帮助你。
参见this link。
https://stackoverflow.com/questions/58518100
复制相似问题