如何从我的视图中将参数传递给控制器​​操作?

时间:2014-02-20 17:04:27

标签: javascript asp.net-mvc kendo-asp.net-mvc

我正试图从我的视图中调用一个通过参数值的动作 这是我的代码

  window.location.href = '@Url.Action("Index", "RelatoriosConsolidados")';

传递一些参数我可以做到这一点

  window.location.href = '@Url.Action("Index", "RelatoriosConsolidados", 
                          new { param1 = "Value"})';

但我无法从日期选择器中获取值

@(Html.Kendo().DatePicker()
          .Name("#datepicker")
          .Events(e => e.Change("change"))
          .Min(new DateTime(2012, 7, 1))

          .Value(Model.dataInicial)
          .HtmlAttributes(new { style = "width:150px" })

   function change() 
   {
    var x = kendo.toString(this.value(), 'd');
    window.location.href = '@Url.Action("Index", "RelatoriosConsolidados",
     new { data = x })';
   }

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我会将行动网址传递为传统的MVC路线{controller}/{Action}/{Id}。然后在您的操作中获取传递的参数(具有相同的参数名称)。我的实现将是这样的:

<强> View.cshtml

$(document).ready(function () {
            // create DatePicker from input HTML element
            $("#datepicker").kendoDatePicker();

            $('#btnSubmit').click(function() {
                alert($('#datepicker').val());
                var data = $('#datepicker').val();
                window.location.href = "/Home/Contact/" + data;
            });
       });

<强> MyController.cs

public ActionResult Contact(string data)
        {
           //do something with 'data'
            ViewBag.Message = "Your contact page.";

            return View();
        }