我正在尝试获取每个项目的设备位置。我有一个页面显示谷歌地图和属于项目的所有设备的列表。我的行动是:
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。
我怎样才能做到这一点?
答案 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);
});