У меня есть страница, которая используется для отображения отчета с формой Ajax. Я хотел бы позволить пользователям выбирать, хотят ли они отчет в формате HTML, CSV или в другом загружаемом формате. Часть HTML работает нормально, но когда я пытаюсь загрузить CSV-версию, содержимое файла отображается на странице, а не предлагает пользователю загрузить.
Если я изменю форму, чтобы она больше не была Ajax-формой, загрузка файла будет работать, но тогда отображение HTML-версии будет не таким приятным. Есть ли способ сделать то, что я пытаюсь?
Мой контроллер имеет такой код:
switch (reportType)
{
case ReportType.Csv:
return File(reportDataAsBytes, "text/csv", "report.csv");
default:
return PartialView("DisplayAllOrders", reportData);
}
И это на мой взгляд
@using (Ajax.BeginForm("ViewAllOrders", "Report", new AjaxOptions { UpdateTargetId = "reportContent", InsertionMode = InsertionMode.Replace }))
{
Format:
<select id="ReportType" name="ReportType">
<option value="1">HTML</option>
<option value="2">CSV</option>
</select>
<input type="submit" />
}