Я пытаюсь отправить параметр на контроллер для загрузки файла.Однако это работает только в жестком коде, я, кажется, не могу назначить его с переменной.
'' '
<a href="@Url.Action("GetFiles", "Home", new { EventID = 57 })">Download Form</a>
Есть ли способ для меня установить значение EventID взначение формы или значение Viewbag.На данный момент единственное значение, которое я могу установить, это целое число, например.57. Это изменится в зависимости от того, в каком событии я нахожусь, в какой момент я могу установить это значение в javascript.
Контроллер
public ActionResult GetFiles(int eventId)
{
//ViewData["eventID"] = eventId;
using (MyDatabaseEntities1 dc = new MyDatabaseEntities1())
{
var sc = dc.ScanReports.FirstOrDefault(x => x.EventID == eventId);
var path = Path.Combine(Server.MapPath("~/App_Data/reports/"), sc.FileName + sc.FileExtension);
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, sc.FileName);
}
}
Обновлено - ДобавленоeventID в форму
<form id="download" action="@Url.Action("GetFiles", "Home")" method="GET">
<input type="hidden" name="EventID" id="reportEventID" /><br />
<button>Download Report</button>
</form>
Ajax Call
```
```
$('#download').submit(function (e) {
$.ajax({
url: this.action,
type: this.method,
data: new FormData(this),
cache: false,
contentType: false,
processData: false,
success: function () {
$('#myModalReport').modal('hide');
},
});
});