2015-11-27 4 views
0

Использование JQuery Я пытаюсь передать параметр даты из datepicker с помощью URL.Action в диаграмму Кендо. Но я не могу понять, как добавить переменную в URL-адрес, см. Ниже.Параметр доступа к контроллеру с использованием URL.ACTION

Вид:

var myDate = $(inpDateCompleted).val(); 

// How to get myDate into the below line to replace 01/11/2013: 
var url = '@(Url.Action("HoursByDay", "DashBoard", new { dateCompleted= "01/11/2013" }, null))'; 

$("#chart").kendoChart({ 
     dataSource: { 
      transport: { 
       read: { 
        url: url, 
        dataType: "json" 
       } 
      }, 
      sort: { 
       field: "Date", 
       dir: "asc" 
      } 
     }, 
     /// Rest of chart setup removed for clarity 
    }); 

Контроллер:

[HttpGet] 
public ActionResult HoursByDay(DateTime dateCompleted) 
{ 
     var s = ExecuteSqlCommand2(dateCompleted);    
     return Content(s, "application/json"); 
} 
+0

Параметр метода имеет имя 'dateCompleted', поэтому он должен быть' new {dateCompleted = "01/11/2013"} ' –

+0

Просто заметил, что вы хотите присвоить ему переменную javascript. Код Razor анализируется на сервере перед его прохождением к представлению, поэтому вам нужно создать URL-адрес с помощью javascript (изменить значение 'href' или использовать' location.ref = 'для перенаправления. –

+0

Спасибо Стивен Я исправил первый вопрос. Не могли бы вы подробнее остановиться на последней части. «Изменить значение href или использовать location.ref = для перенаправления» – Reafidy

ответ

1

Убедитесь, что имя строки запроса совпадает с действием именем параметра метода

var url = '@Url.Action("HoursByDay", "DashBoard", 
              new { dateCompleted= "01/11/2013" })'; 
alert(url); 

Если вы хотите передать переменную JavaScript value как значение dateCompleted param, вы должны сначала создать URL-адрес метода действия (без каких-либо параметров) и добавьте значение querystring в javascript.

var myDate = $(#yourInputFieldIdForDate").val(); 
alert(myDate); 
var url = '@Url.Action("HoursByDay", "DashBoard")?dateCompleted=' + myDate; 
alert(url); 

Замените селектор jQuery, чтобы получить значение даты в соответствии с вашими требованиями.

Смежные вопросы