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

Javascript 更新从控制器发送到视图的数据,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我正在使用谷歌地图API制作一张地图,显示玩家在服务器上的当前位置。该列表由游戏服务器更新,数据存储在web应用程序所在的MySql数据库中。当用户打开地图时,将从数据库中提取玩家列表及其位置并发送到视图 public ActionResult Index() { return View(loadData()); //List<MapModel> } public ActionResult Index() { 返回视图(loadData());//列表 } 在视图上,我为

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

public ActionResult Index()
{
    return View(loadData()); //List<MapModel>
}
public ActionResult Index()
{
返回视图(loadData());//列表
}
在视图上,我为每个玩家在各自的位置创建了一个标记。我有一个计时器,可以创建/更新/删除标记(我已经删除了本演示中不必要的代码)

setInterval(“updateMap();”,1000);
函数updateMap()
{
****
@foreach(模型中的var播放器)
{
players[@player.playerid]=新的google.maps.Marker({
位置:SanMap.getLatLngFromPos(@player.pos_x,@player.pos_y),
地图:地图
});
}
}

问题是如何更新数据?

试试这样的方法

 public JsonResult GetPlayers()
    {
        return Json(loadData()); //List<MapModel>
    }
publicjsonresult GetPlayers()
{
返回Json(loadData());//列表
}
然后在javascript中使用

函数更新映射()
{
$.post('/SomeController/GetPlayers',函数(数据){

对于(var i=0;iYou需要调用服务器并获取更新的数据。数据存储在与站点位于同一服务器上的MySql数据库中。如何调用loadData()并获取更新列表?不客气。请注意,如果您有大量玩家,此技术可能是一种不好的做法。您可以使用WebSocket通知玩家位置更改。为此,请检查ASP.NET。
 public JsonResult GetPlayers()
    {
        return Json(loadData()); //List<MapModel>
    }
 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
        });

    }
});

}