Я занимаюсь разработкой приложения с функцией, которая загружает некоторые записи и сохраняет их в виде текстового файла. Это работает, если я поставлю статическое местоположение для результирующего файла. Я хочу позволить пользователю решить, где он хочет сохранить этот файл. Существует ли SaveFileDialog в Asp.Net Core 2.2 MVC?
Мое действие загрузки в моем контроллере приведено ниже:
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: \