在表单中,我有一个图像标记,它正在调用控制器动作GetImage
(保留png图像数据)。
它工作正常,但现在我引入了两个datepicker文件 - fromdate和todate,我想将datepicker值也传递给控制器。如何将这些datepicker值传递给控制器操作。 这是一个图像标记,它可以正常工作而不传递日期字段。
img alt="Column Chart" src="@Url.Action("GetColumnChart")
有人可以提供帮助吗?
答案 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才能访问它们 - 我上面给出的那些只是例如。更改它们以适合您的代码。