使用Razor语法调用JavaScript函数

使用Razor语法调用JavaScript函数,javascript,c#,asp.net-mvc,razor,Javascript,C#,Asp.net Mvc,Razor,我目前正在开发一个ASP.NETMVC应用程序。 从我的数据库中,我创建了三个字典,并将它们存储在视图模型中 在控制器中用一些逻辑填充上述词典后,我通过@Model 在操作这些字典之后,我需要将数据发送到一个JS函数,以便将一些逻辑应用到一个名为 我已经阅读了使用@:的Razor语法,目前正在使用此方法发送两个字符串数组。当尝试在JS函数中访问这些数组时,它们似乎只包含System.String[] 代码如下: var weekArray; var engArray; @foreach(var

我目前正在开发一个ASP.NETMVC应用程序。 从我的数据库中,我创建了三个字典,并将它们存储在视图模型中

在控制器中用一些逻辑填充上述词典后,我通过
@Model

在操作这些字典之后,我需要将数据发送到一个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;
}
var-weekArray;
var-engArray;
@foreach(模型中的var周。周计划)
{
var key=week.key;
var values=week.Value.ToArray();
var eng=Model.EngineerSchedule.Where(k=>k.Key==Key)。选择(v=>v.Value.ToArray();
string test=“hello”;
@:gatherTimes('@values','@eng');
}
函数时间(值、英语)
{
对于(变量i=0;i

我最终计划在阵列中循环,它们保存有关时隙和工程师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>

您需要可能的副本,非常感谢@strake!
@: gatherTimes('@Html.Raw(Json.Encode(values))', '@Html.Raw(Json.Encode(eng))');