Json ASP MVC变量到javascript?

Json ASP MVC变量到javascript?,json,asp.net-mvc-2,variables,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; Loca

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

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。


如何实现这一点?

将id值传递给查看和

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

});
$(函数(){
$.getJSON(“/Project/Map/”,loadMap);
});

如果您的路线像

routes.MapRoute(
              "default",
              "{controller}/{action}/{id}",
              new { action = "Index", id = "" }
            );    
在global.asax文件中,默认路由处理程序会将链接/Project/Map/68中的68自动分配给id参数。但是,如果您的问题是如何让Projectd查看,则有几个选项。最简单的方法是将其分配给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);

});
jQuery().ready(函数(){
$.getJSON(“/Project/Map/”,loadMap);
});

很抱歉,我是这样一个笨蛋,但是,我该怎么做呢?对于GoogleMaps视图,我使用了一个操作链接来传递变量,但是对于json,我不能使用它。知道为什么吗?