#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-запрос