Присвойте переменные JQuery Html.Actionlink для передачи параметров в новое представление - PullRequest
1 голос
/ 09 марта 2019

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

JQuery:

 var from = $('#dateFrom').val();
 var to = $('#dateTo').val();
 var uid = $('#projectUid').text();
 console.log('From: ' + from + '   To: ' + to + '  uid: ' + uid);                  

 $('#dateFrom').change(function () {
     from =  $('#dateFrom').val();
 });

 $('#dateTo').change(function () {
     to = $('#dateTo').val();
 });

Я знаю, что Razor обрабатывается на стороне сервера, поэтому я хочу опубликовать действие, которое создаст новое представление, например:

 $(document).ready(function () {
     $('#btnSubmit.click').click(function () {
          @Html.ActionLink("View Report", "PdfReport", "ReportGenerator"), { from: from }, { to: to }, { projectreference: uid };
      });
 });

 <input type="submit" id="btnSubmit" name="btnSubmit" value="Create Report" class="btn btn-sm btn-primary" />

Тогда подберите параметры из поста:

  public IActionResult PdfReport(string from, string projectreference, string to)
  {
      var dateFrom = Convert.ToDateTime(from).ToString("yyyy-MM-dd HH:mm:ss");
      var dateTo = Convert.ToDateTime(to).AddMinutes(1).ToString("yyyy-MM-dd HH:mm:ss");  
      var puid = projectreference;    
  }

Итак, мой вопрос: как я могу передать переменные JQuery в действие в качестве параметров в HtmlActionLink. Я предполагаю, что вы не можете, поскольку Razor компилируется на стороне сервера. Имея это в виду, что является альтернативой без использования AJAX.

...