如何将datepicker值传递给MVC控制器中的图像标记的url.Action - Jquery

时间:2016-09-19 09:01:11

标签: jquery asp.net-mvc datepicker

在表单中,我有一个图像标记,它正在调用控制器动作GetImage(保留png图像数据)。

它工作正常,但现在我引入了两个datepicker文件 - fromdate和todate,我想将datepicker值也传递给控制器​​。如何将这些datepicker值传递给控制器​​操作。 这是一个图像标记,它可以正常工作而不传递日期字段。

img alt="Column Chart" src="@Url.Action("GetColumnChart")

有人可以提供帮助吗?

1 个答案:

答案 0 :(得分:0)

你需要一些相当简单的javascript。您只需处理“刷新”按钮的单击事件,获取两个字段的值并更新图像源。狡猾的一点是重用MVC生成的URL(这样我们就不会遇到路由问题)。由于生成Url(在页面加载时)我们不知道最终的路由值(从和到目前为止),我们放入占位符然后使用一些脚本将它们替换为每次使用的值:

document.getElementById("RefreshButton").addEventListener("click", function(event) {
  var fromdate = document.getElementById("fromdate").value;
  var todate = document.getElementById("todate").value;
  var url = '@Url.Action("GetColumnChart", new { fromdate: "FROM-PLACEHOLDER", todate: "TO-PLACEHOLDER" })'; //generate URL with placeholders
  url = url.replace("FROM-PLACEHOLDER", fromdate);
  url = url.replace("TO-PLACEHOLDER", todate);
  document.getElementById("ChartImage").src = url;
});

显然,您需要确保所有元素都具有适当的ID才能访问它们 - 我上面给出的那些只是例如。更改它们以适合您的代码。