コントローラーから 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' });
}
});