繁体   English   中英

更新从控制器发送到视图的数据

[英]Update data sent to view from controller

我正在使用Google Maps API制作地图,该地图将显示玩家在服务器上的当前位置。 该列表由游戏服务器更新,数据存储在Web应用程序所在的MySql数据库中。 当用户打开地图时,玩家列表及其位置将从数据库中提取并发送到View

public ActionResult Index()
{
    return View(loadData()); //List<MapModel>
}

在“视图”上,我为每个玩家各自的位置创建一个标记。 我有一个计时器,它将创建/更新/删除标记(我已删除了此演示的不必要代码)

setInterval("updateMap();", 1000);
function updateMap()
{
    **<update data somehow>**
    @foreach(var player in Model)
    {
        <text>
        players[@player.playerid] = new google.maps.Marker({
            position: SanMap.getLatLngFromPos(@player.pos_x, @player.pos_y),
            map: map
        });
        </text>
    }
}

问题是如何更新数据?

尝试这样的事情。

 public JsonResult GetPlayers()
    {
        return Json(loadData()); //List<MapModel>
    }

然后在JavaScript中使用jquery post方法

 function updateMap()
    {

$.post('/SomeController/GetPlayers', function(data){

    for(var i =0; i<data.length; i++)
    {

        players[data[i].playerid] = new google.maps.Marker({
            position: SanMap.getLatLngFromPos(data[i].pos_x, data[i].pos_y),
            map: map
        });

    }
});

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM