将数据从视图发送到控制器

时间:2013-06-13 08:30:51

标签: javascript asp.net-mvc

在我的视图中,我有两个jquery日期输入字段,其中有两个按钮用于处理这些日期选择。在第一个按钮上,我通过ajax发送数据,并在一些div中显示数据,这是完美的。

除了那个按钮,我还有一个按钮,用于显示pdf文档中的数据。当然我不想使用ajax,但我确实想使用相同的选定日期数据(我现在想要使用另外两个输入来处理用户选择)。

所以我的观看代码段就是这样的

<tr>
    <td>@Html.TextBox("dateFrom", null, new { @class = "date", @id = "datePickerFrom" })</td>
    <td>@Html.TextBox("dateTo", null, new { @class = "date", @id = "datePickerTo" })</td>
    <td>
        <input type="submit" value="Send" class="dateBtn" /></td>
     <td>
        <input type="submit" value="PDF" class="dateBtnPdf" />
     </td>

</tr>

我正在使用js来处理点击处理程序并将数据发送到控制器以进行ajax操作

$(document).ready(function () {
   $(".dateBtn").click(function (event) {
      var dateFrom = $("#datePickerFrom").val();
      var dateTo = $("#datePickerTo").val();
      GetDetails(dateFrom, dateTo);
   })
function GetDetails(dateFrom, dateTo) {
    $.ajax({
..... ommited on purpose

所以我的问题是如何将所选值发送到控制器以获取第二个不使用ajax的按钮(我是否需要使用表单,如果是这样,如何使用相同的输入字段来获取将被发送的值到控制器?)

 $(".dateBtnPdf").click(function (event) {
   var dateFrom = $("#datePickerFrom").val();
   var dateTo = $("#datePickerTo").val();

   //send values to the controller /report/pdfDemo
 })

由于

1 个答案:

答案 0 :(得分:3)

我看到这种情况的解决方案很少,我建议你接近的那个:

<form id="form-dates" action"/report/pdfDemo"> <!-- Here you could use @Url.Action("pdfDemo","report") -->

@Html.Hidden("dateFromPdf");
@Html.Hidden("dateToPdf");

<input type="submit" value="PDF" class="dateBtnPdf" />

</form>

在您的javascript中,更新表单的隐藏值并提交:

$(".dateBtnPdf").click(function (event) {
   $('[name="dateFromPdf"]').val( $("#datePickerFrom").val() );
   $('[name="dateToPdf"]').val( $("#datePickerTo").val() );

   $('#form-dates').submit();
   //send values to the controller /report/pdfDemo
 })