我从我的控制器得到一个 JSON 字符串:
public ActionResult Highlight()
{
var statesHighlight =
db.Jobs
.Select(r => r.Location);
return Json(statesHighlight , JsonRequestBehavior.AllowGet);
}
我通过 Ajax 请求得到它,如下所示:
$.ajax({
async: false,
url: '@Url.Action("Highlight", "Jobs1")',
data: JSON.stringify(),
type: 'POST',
success: function (data) {
citydata = data;
}
});
问题是这不保持我的字符串的格式。调用控制器操作表明它的 JSON 格式正确,但是一旦它来自我的 Ajax 请求,它就不是了。这里直接来自控制器:
["HDQ","HDQ","EVA","HDQ","HDQ","HDQ","EVA","SVF","SVF","SVF","SVF","DFC","DCF","Feedlot","DCF","DCF","DCC","AGNW","AGNW"]
在将变量传递给我的插件之前,有什么方法可以确保这是设置给变量的值?
我使用的插件叫做 ImageMapster。目前,我已经为它硬编码了 JSON,它可以按预期工作。
var data = $.parseJSON($('#map-data').text());
var cities = $.parseJSON($('#city-data').text());
$('img').mapster({
mapKey: 'state',
clickNavigate: true,
isSelectable: false,
highlight: false,
onConfigured: function () {
// make the array into a comma-sparated list
var state_list = data.join(',');
var city_list = cities.join(',');
// the 'set' activates the areas
$('img').mapster('set', true, state_list, options = { fillColor: '638EA5' });
$('img').mapster('set', true, city_list, options = { fillColor: 'ffffff' });
}
});