javascript - 更新从 Controller 发送到 View 的数据

标签 javascript asp.net-mvc

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

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

在 View 上,我为每个玩家在各自的位置创建了一个标记。我有一个计时器,可以创建/更新/删除标记(我已经删除了本演示中不必要的代码)

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
        });

    }
});

}

关于javascript - 更新从 Controller 发送到 View 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727848/

相关文章:

javascript - AngularJS 工厂和 Controller 代码,不产生任何东西

javascript - jQuery 无法检测类更改?

javascript - 未定义错误: create object with function that returns HTML element

asp.net-mvc - 表单例份验证给出了一个太长的查询字符串

html - MVC4 WebGrid header 固定在顶部

asp.net-mvc - 继承自实体类,因此可以在 Entity Framework 中使用

当选择更多选项时,jQuery 更改事件不会在 IE8 中的多个 <select> 上触发

javascript - 包含所有这些第 3 方 javascript 文件是否会带来安全风险?

javascript - 事件仅在触发两次时才会触发

asp.net-mvc - .NET MVC - 列表和详细 View