【发布时间】:2018-05-10 14:55:28
【问题描述】:
我正在尝试将我的视图与 java 脚本分开,在我看来我调用 js 文件中的函数来创建图表,
这是我的js文件和函数:
function pieChartForInterventions(chartID,pieChartData) {
chartID.kendoChart({
dataSource: {
data: pieChartData
},
series: [{
type: "pie",
field: "list",
categoryField: "mm",
padding: 0,
labels: {
visible: true,
}
}],
seriesClick:onDb,
tooltip: {
visible: true,
template: "${ category }"
}
,
legend: {
position: "bottom"
}
});
}
function onDb(e) {
var _clicked = e.category;
}
这是我的看法:
pieChartForInterventions($("#pieChart"), result);
现在的问题是,正如您在我的函数中看到的,我有一个 onDb() 函数,当我单击图表以获取我单击的值时调用该函数,我需要此值通过 Ajax 调用将其发送回通过我的观点,我应该如何在我的观点中拥有这个价值?
【问题讨论】:
-
你的意思是 我需要这个值通过我的视图通过 Ajax 调用将其发送回?
-
@Shyju 在我的图表中,当我点击一个系列时,我得到它的值,然后我需要这个值将它发送回控制器,因为我将根据这个值创建另一个图表跨度>
-
于是进行ajax调用,用js初始化图表。
-
@Shyju 那边怎么用"@Url.Action("")?那我的观点就没有用了,我应该这样工作吗?
-
可以在视图中执行Url.Action,将生成的相对url通过js变量传递给你的外部js。见How do I make JS know about the application root?。另一种选择是将
data属性设置为您的身体并在javascript 中读取它。 ex<body data-myurl="@Url.Action("SecondChart")">和 jsvar url = $("body").data("myurl")`
标签: javascript asp.net-mvc view