【问题标题】:Call javascript function in MVC在 MVC 中调用 javascript 函数
【发布时间】:2014-06-25 17:54:06
【问题描述】:

我在视图的头部有以下 javascript 函数

function addMarker(title, description, lon,lat, iconT) {
    var icon = new OpenLayers.Icon(iconT);
    var markerslayer = new OpenLayers.Layer.Markers("Markers");
    var lonlat = new OpenLayers.LonLat(lon, lat);
    lonlat = lonlat.transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
    var markerToAdd = new OpenLayers.Marker(lonlat, icon);
    markerToAdd.icon.imageDiv.title = title + "  -  " + description;
    markerslayer.addMarker(markerToAdd);
    map.addLayer(markerslayer);
    map.addControl(new OpenLayers.Control.LayerSwitcher());
}

我正在尝试使用以下任一方法调用上述函数:

@if (Model != null)
{
    foreach (var item in Model)
    {                
    <script type="text/javascript">
            addMarker(@item.Title, @item.Description, @item.Longitude, @item.Latiude, @item.Icon);
    </script>
    }
}

或者

 public ActionResult Index()
 {
     List<CommonLayer.Map> userMaps = new BL.Map().getUserMaps(User.Identity.Name);
     foreach (var item in userMaps)
     {
         Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "MyFunction()", true);
     }

     return View(userMaps);
 }

我做错了什么?视图代码没有调用 addMarket 函数,而 c# 代码不能从 foreach 内部调用,因为它不是静态的

【问题讨论】:

  • 第一个应该可以工作\
  • 第一个:您的addMarker 函数在您的视图中是否声明在foreach 循环之上?您是否看到任何控制台错误?
  • 生成的 HTML/JS 长什么样?标题和描述周围有引号吗?
  • 尝试使用单引号,例如:addMarker('@item.Title'....)
  • 你正在混合服务器端和客户端代码,你确定这是你想要的吗?

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


【解决方案1】:

试试这个:

@if (Model != null)
{
    foreach (var item in Model)
    {
    <script type="text/javascript">
            addMarker('@item.Title', '@item.Description', @item.Longitude, @item.Latiude, @item.Icon);
    </script>
    }
}

此外,此行的 icon 拼写错误(必须是 iconT 而不是 icon

var markerToAdd = new OpenLayers.Marker(lonlat, icon);

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2013-04-21
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2019-10-25
    相关资源
    最近更新 更多