将JQuery变量分配给Html.Actionlink以将参数传递给新视图

时间:2019-03-09 17:32:28

标签: jquery asp.net-core razor actionlink

我想将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;    
  }

所以我的问题是,如何在HtmlActionLink中将JQuery变量作为参数传递给操作。我假设您不能作为Razor在服务器端进行编译。考虑到这一点,不使用AJAX的替代方法是什么。

0 个答案:

没有答案