0

您好我正在尝试在谷歌地图上填充标记并使用 Json 从数据库中读取纬度和经度。

作为第一步,我要做的就是看看我是否得到任何回应。代码如下:

实体如下:

public class Property
{
    public int PropertyId { get; set; }
    ...
    public virtual PropertyAddress PropertyAddress { get; set; }
}

public class PropertyAddress
{
    [Key]
    public int PropertyId { get; set; }
    ...
    public float Latitude { get; set; }
    public float Longitude { get; set; }
}

Json 属性模型:

public class JsonProperty
{
    public int PropertyId { get; set; }
    public float Latitude { get; set; }
    public float Longitude { get; set; }
}

控制器:

    public ActionResult Map()
    {
        if (Request.IsAjaxRequest())
        {
            var properties = websiteRepository.FindAllProperties();

            var jsonProperties = from property in properties
                                 select new JsonProperty
                                 {
                                     PropertyId = property.PropertyId,
                                     Latitude = property.PropertyAddress.Latitude,
                                     Longitude = property.PropertyAddress.Longitude
                                 };

            return Json(jsonProperties.ToList());
        }
        else 
        {
            return View();
        }
    }

看法:

@section Scripts_footer {
    <!-- Google Map Script -->
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            var map = new google.maps.Map(document.getElementById("map"), {
                center: new google.maps.LatLng(19.0759837, 72.8776559),
                zoom: 13,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            });

            $.getJSON("/Search/Map", function (json) {
                alert(json);
            });
        });
    </script>
}

<div id="map" style="width: 500px; height: 300px"></div>

我期待一个带有对象对象对象的警报消息......不太确定为什么没有发生。

4

1 回答 1

2

将控制器代码中的 return 语句更改为:

return Json(jsonProperties.ToList(), JsonRequestBehavior.AllowGet);

出于安全原因,Json 请求被隐式阻止。

于 2012-10-08T12:10:10.173 回答