使用 URL.ACTION 将参数传递给控制器

Pass Parameter To Controller Using URL.ACTION

使用 Jquery 我正在尝试使用 URL.Action 将日期参数从日期选择器传递到 Kendo 图表。但我不知道如何将变量添加到 url 中,请参见下文。

查看:

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");
}

确保您的查询字符串名称与您的操作方法参数名称匹配

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

如果您想传递一个 javascript 变量值作为 dateCompleted 参数的值,您应该首先将 url 构建到操作方法(不带任何参数)并将查询字符串值附加到javascript.

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

替换 jQuery 选择器以获得适合您要求的日期值。