ASP MVC变量到javascript?

时间:2010-09-22 12:26:23

标签: json asp.net-mvc-2 variables

我正在尝试获取每个项目的设备位置。我有一个页面显示谷歌地图和属于项目的所有设备的列表。我的行动是:

public ActionResult GoogleMaps(int id)
  {
      return View(Project.Find(id).DeviceLocations);
  }

  public ActionResult Map(int id)
  {
      var map = Project.Find(id).DeviceLocations;
      Locations l = new Locations();
      l.locations = map;
      return Json(l, JsonRequestBehavior.AllowGet);
  }

得到Json的Jquery:

jQuery().ready(function () {
    $.getJSON("/Project/Map/68", loadMap);

});

列出属于项目的设备是这样的,但json显然失败,因为id为null。在你看到68的jquery中,它应该是正在查看的项目的id。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

将id值传递给view和

$(function () {
    $.getJSON("/Project/Map/<%:Model.Id%>", loadMap);

});

答案 1 :(得分:0)

如果你有像

这样的路线
routes.MapRoute(
              "default",
              "{controller}/{action}/{id}",
              new { action = "Index", id = "" }
            );    
在您的global.asax文件中

,默认路由处理程序将自动将链接/ Project / Map / 68中的68分配给id参数。但是,如果您的问题是如何获取projectID以查看有几个选项。最简单的方法是将它分配给ActionResult中的ViewData。

public ActionResult GoogleMaps(int id)
{
    ViewData["ProjectID"] = Project.GetCurrentProjectID(id);
    return View(Project.Find(id).DeviceLocations);
}

在你的视图中你可以写

jQuery().ready(function () {
    $.getJSON("/Project/Map/<%=ViewData["ProjectID"]%>", loadMap);

});