使用Razor语法调用JavaScript函数
Call JavaScript function with Razor syntax
我目前正在开发ASP.Net MVC应用程序。从我的数据库中,我创建了三个字典,并将它们存储在视图模型中。
在控制器中用一些逻辑填充上述字典后,我将通过@Model
访问我的视图中的这些字典
在操作这些字典之后,我需要将数据发送到JS函数,以将一些逻辑应用于名为DHtmlxScheduler 的JS库
我已经阅读了使用@:
的Razor语法,并且目前正在使用此方法发送两个字符串数组。当试图在JS函数中访问这些数组时,它们似乎只包含System.String[]
这是代码:
var weekArray;
var engArray;
@foreach(var week in Model.WeeklySchedule)
{
var key = week.Key;
var values = week.Value.ToArray();
var eng = Model.EngineerSchedule.Where(k => k.Key == key).Select(v => v.Value).ToArray();
string test = "hello";
@: gatherTimes('@values', '@eng');
}
function gatherTimes(values, engs)
{
for(var i = 0; i < values.length; i++)
{
alert(values[i]);
}
//alert(values);
//alert(engs);
//weekArray[weekArray.length] = values;
//engArray[engArray.length] = engineers;
}
我最终计划在数组中循环,它们包含关于时隙和工程师ID的信息。如果我能提供更多信息,我会尽我所能。
您需要使用JSON.encode将列表编码为JSON
@{
// C# collection
var collection= new List<string> {"A", "B", "C"};
}
<script type="text/javascript">
// encode C# collection to JSON, set to javascript variable
var arr = @Html.Raw(Json.Encode(collection))
for(var i = 0; i < arr.length; i++)
{
console.log(arr[i]); // Output is A B C
}
</script>
在你的情况下,它会是这样的:
@: gatherTimes('@Html.Raw(Json.Encode(values))', '@Html.Raw(Json.Encode(eng))');
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别