在razor foreach循环中创建JavaScript元素

时间:2018-04-16 22:05:48

标签: javascript c# .net asp.net-mvc razor

我使用OpenStreetMap将搜索结果添加到地图中。对于每个返回的搜索结果,我需要在地图上绘制纬度和经度:

L.marker([39.616886,-86.310997]).addTo(map)
.bindPopup('the institutions name')
.openPopup();

我如何在forEach循环中执行此操作?这是我尝试过的,但我收到了错误:

  

名称L在当前上下文中不存在。

@foreach (var u in Model.listschools)
{
    L.marker([@u.lat, @u.longt]).addTo(map)
        .bindPopup(@u.instnm)
    .openPopup();
}

1 个答案:

答案 0 :(得分:2)

Razor正在考虑@foreach中的代码作为C#代码,所以你需要告诉它不是。一种方法是将它放在<text></text>

之间
@foreach (var u in Model.listschools)
{
    <text>L.marker([@u.lat, @u.longt]).addTo(map)
           .bindPopup('@u.instnm')
           .openPopup();</text>
}

另请注意,您忘记了此行中的引号:

.bindPopup('@u.instnm')