C# MVC中javascript中的嵌套foreach

C# MVC中javascript中的嵌套foreach,c#,asp.net-mvc,razor,foreach,nested,C#,Asp.net Mvc,Razor,Foreach,Nested,我正在创建一个ASP.NET MVC应用程序,其中显示一个带有数据库坐标的谷歌地图。我是这方面的新手,我在嵌套foreach循环的问题上遇到了麻烦。。。 在C#Razor页面上,我有一个JavaScript函数“Initialize”,在该函数中,我循环遍历包含坐标的对象数组,并基于它们创建一条多段线,然后将其添加到地图中。这很好,代码如下所示: var latLongCoordinates = [ @foreach(var itemFlightState in Model.QARFli

我正在创建一个ASP.NET MVC应用程序,其中显示一个带有数据库坐标的谷歌地图。我是这方面的新手,我在嵌套foreach循环的问题上遇到了麻烦。。。 在C#Razor页面上,我有一个JavaScript函数“Initialize”,在该函数中,我循环遍历包含坐标的对象数组,并基于它们创建一条多段线,然后将其添加到地图中。这很好,代码如下所示:

var latLongCoordinates =
[
    @foreach(var itemFlightState in Model.QARFlights[0].FlightStates)
    {
        <text> new google.maps.LatLng(@itemFlightState.PresentPosLatDec.ToString().Replace(",", "."), 
               @itemFlightState.PresentPosLongDec.ToString().Replace(",", ".")),</text>
    }
];

var flightPath = new google.maps.Polyline({
    path: latLongCoordinates,
    geodesic: true,
    strokeColor: '#FF0000',
    strokeOpacity: 1.0,
    strokeWeight: 2
});

flightPath.setMap(map);
var-latlong坐标=
[
@foreach(模型中的var itemFlightState.QARFlights[0]。FlightState)
{
新的google.maps.LatLng(@itemFlightState.PresentPosLatDec.ToString().Replace(“,”,”),
@itemFlightState.PresentPosLongDec.ToString().Replace(“,”,“),
}
];
var flightPath=new google.maps.Polyline({
路径:Latlong坐标,
测地线:正确,
strokeColor:“#FF0000”,
笔划不透明度:1.0,
冲程重量:2
});
flightPath.setMap(map);
但是,我需要显示几个不同的多段线(每个航班一条),因此需要使用嵌套的foreach循环来实现这一点,但它不起作用。我想用另一个foreach循环来环绕上面的示例,以绘制所有航班,而不仅仅是上面示例中索引为0的航班。以下是我想做的:

@foreach (var itemQARFlight in Model.QARFlights) {
    var latLongCoordinates =
    [
        @foreach(var itemFlightState in itemQARFlight.FlightStates)
        {
            <text> new google.maps.LatLng(@itemFlightState.PresentPosLatDec.ToString().Replace(",", "."), 
                   @itemFlightState.PresentPosLongDec.ToString().Replace(",", ".")),</text>
        }
    ];

    var flightPath = new google.maps.Polyline({
        path: latLongCoordinates,
        geodesic: true,
        strokeColor: '#FF0000',
        strokeOpacity: 1.0,
        strokeWeight: 2
    });

    flightPath.setMap(map);
}
@foreach(Model.qarflight中的var itemQARFlight){
var Latlong坐标=
[
@foreach(itemQARFlight.FlightStates中的var itemFlightState)
{
新的google.maps.LatLng(@itemFlightState.PresentPosLatDec.ToString().Replace(“,”,”),
@itemFlightState.PresentPosLongDec.ToString().Replace(“,”,“),
}
];
var flightPath=new google.maps.Polyline({
路径:Latlong坐标,
测地线:正确,
strokeColor:“#FF0000”,
笔划不透明度:1.0,
冲程重量:2
});
flightPath.setMap(map);
}
当添加周围的@foreach时,下面的所有内容都变为红色,解析器似乎不再理解我的意思

对不起,如果这是一个微不足道的问题,但我真的无法回避。任何帮助都将不胜感激! 顺致敬意,
Ulrika

请注意,
@foreach
将您带回到C#,因此您需要在
中再次包装JavaScript

@foreach(Model.qarflight中的var itemQARFlight){
var Latlong坐标=
...
flightPath.setMap(map);
}
@foreach (var itemQARFlight in Model.QARFlights) {
    <text>
        var latLongCoordinates =
        ...
        flightPath.setMap(map);
    </text>
}