2014-02-20 3 views
0

Я пытаюсь вызвать действие с моей точки зрения, передавая значения paremeter Это мой кодКак передать параметр в действие контроллера из моего представления?

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

передать некоторые параметры я могу сделать это

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

, но я не могу получить значение из a datepicker

@(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 })'; 
    } 

Как я могу это сделать?

+0

Можете ли вы показать нам свой 'Index' метод действия? –

+0

var x - переменная javascript, которая работает на стороне клиента. Url.Action происходит на сервере до запуска клиентского скрипта. – Dismissile

+0

точно, как я могу получить значение datepicker? –

ответ

0

Я бы передал URL-адрес действия обычного трассы 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(); 
     } 
Смежные вопросы