Javascript MVC动态谷歌地图标记
我正试图从我的MVC模型项目中绘制多个动态谷歌地图标记。我可以通过硬编码而不是动态编码来实现。我错过了什么Javascript MVC动态谷歌地图标记,javascript,asp.net-mvc,google-maps,google-maps-api-3,Javascript,Asp.net Mvc,Google Maps,Google Maps Api 3,我正试图从我的MVC模型项目中绘制多个动态谷歌地图标记。我可以通过硬编码而不是动态编码来实现。我错过了什么 function codeAddress(index, value) { //var addressArray = ['Canada', 'India', 'America']; //$.each(addresses, function() //{ // var addresses = value.ASSET_N
function codeAddress(index, value)
{
//var addressArray = ['Canada', 'India', 'America'];
//$.each(addresses, function()
//{
// var addresses = value.ASSET_NAME;
//});
@for (int i = 0; i < Model.Count(); i++)
{
var addressArray = Model[i].ASSET_NAME;
}
//var geocoder = new google.maps.Geocoder();
for (var x = 0; x < addressArray.Count(); x++)
{
geocoder.geocode({ 'address': addressArray[x] }, function (results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
函数代码地址(索引、值)
{
//var addressArray=[“加拿大”、“印度”、“美国”];
//$.each(地址、函数()
//{
//var地址=value.ASSET\u名称;
//});
@对于(int i=0;i
由于作用域的原因,您的地址数组只存在于for循环中。这就是为什么在尝试获取addressArray.Count()时会出现错误的原因
相反,先创建一个空数组,如下所示:
var addressArray = [];
for (int i = 0; i < Model.Count(); i++)
{
addressArray.push(Model[i].ASSET_NAME);
}
而不是覆盖addressArray,您应该像这样推送:
var addressArray = [];
for (int i = 0; i < Model.Count(); i++)
{
addressArray.push(Model[i].ASSET_NAME);
}
for(int i=0;i
=-=-=-编辑-=-=-=
我的缺点是,不知怎的,我认为它是纯javascript。遗憾的是,我对asp.net一无所知,但您应该使用asp.net构建一个javascript数组字符串,并将其分配给javascript addressArray。
所以,我想你可以试试这样:
@{
var addressArray = '[';
for (int i = 0; i < Model.Count(); i++)
{
if (i!=0){
addressArray = addressArray + ',';
};
addressArray = addressArray + '"' + Model[i].ASSET_NAME+ '"' ;
};
addressArray = addressArray + ']';
}
var addressArray = @addressArray;
@{
var addressArray='[';
对于(int i=0;i
使用上述代码,我在for(int I=0;I