Отправка параметра обратно в контроллер из представления для загрузки файла

#c# #html #.net #asp.net-mvc #razor

#c# #HTML #.net #asp.net-mvc #razor

Вопрос:

Я пытаюсь отправить параметр на свой контроллер для загрузки файла. Однако он работает только при жестком кодировании, я, похоже, не могу назначить его переменной.

»’

  <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);
    }
}
  

Обновлено — добавлен идентификатор события в форму

   <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');
      },

    });
});
  

Комментарии:

1. вы можете вызвать действие динамически через javascript, где вы сможете передать любое динамическое значение, которое вам нужно, предполагая, что все нужные вам идентификаторы событий где-то существуют в dom. конкретная реализация этого зависит от того, как структурировано ваше представление / разметка, которую вы не показали

2. Не могли бы вы поделиться строкой кода, в которой вы передаете параметр динамически?

3. Привет, спасибо за помощь, вместо этого я создал форму и передал эти значения в ajax-запрос