Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在google可视化引用c#函数中包含javascript变量_Javascript_C#_Google Visualization - Fatal编程技术网

如何在google可视化引用c#函数中包含javascript变量

如何在google可视化引用c#函数中包含javascript变量,javascript,c#,google-visualization,Javascript,C#,Google Visualization,试图在被调用的c#函数中包含javascript变量“selectedValue”时出错。SelectedValue在GetTotalLicensesCount中有红色下划线错误 function drawExpireGauge() { var selectedValue = "30days"; var data = google.visualization.arrayToDataTable([ ['Label', 'Value'],

试图在被调用的c#函数中包含javascript变量“selectedValue”时出错。SelectedValue在GetTotalLicensesCount中有红色下划线错误

function drawExpireGauge() {

    var selectedValue = "30days";

        var data = google.visualization.arrayToDataTable([
              ['Label', 'Value'],
              ['Expiring', <%=GetTotalLicensesCount(null, null, null, selectedValue, selectedValue, null, null)%>],
              ['New', <%=GetTotalLicensesCount(null, null, null, null, null, null, selectedValue)%>],
              ['Not Used', 0]
        ]);
}
函数drawerpiregauge(){
var selectedValue=“30天”;
var data=google.visualization.arrayToDataTable([
['Label','Value'],
[‘到期’,],
[‘新’,],
[“未使用”,0]
]);
}
如果将“30days”简单地放在GetTotalLicensesCount函数中,而不是放在变量中,则它可以工作

我做了尽职调查,在论坛上搜索了一个类似的问题,但没有找到任何问题,请告诉我该如何更改该问题,或者是否有合理的副本来回答该问题

C#代码不会作为js执行的一部分执行

注入的C#代码是模板的一部分,该模板将生成最终在客户端执行的js代码。因此,C代码将无法访问“selectedValue”

因此,在服务器上运行的C#代码有助于生成发送回客户端的HTTP响应。JS代码,在客户端获得响应后在其上运行

您有两个选择,Ajax返回到服务器以获取数据,或者将所有数据提供给js,这样您就可以编写js版本的GetTotalLicensesCount

选择哪种方法取决于:-

1) 有多少数据(小的,用js做,大的,ajax)

2) 如果计算所需的任何数据是敏感的,并且您不希望用户看到它。(始终使用ajax以避免暴露敏感数据)

var selectedValue=“30天”是作为javascript(在用户浏览器中)而不是Razor(在发送给用户之前在服务器上)执行的。将其包装在
@{
}
中,以便在服务器上对其进行评估。但是,如果要从页面的输入中获取
30天
(例如,用户单击/键入的内容),则需要向服务器发送请求,以正确评估Keith提到的内容