У меня есть словарь, который содержит, ну, строки:
Ключ: «Х»
Значение: «Y»
например
Это возвращается через JsonResult в моем контроллере:
public JsonResult GetMachineSettings(string machine)
{
DataTable _dt = getmysettings_SqlCall;
TaskSetting _mr= new TaskSetting(); //simply a dictionary of string,string
foreach (DataRow _row in _dt.Rows)
{
_mr.Settings.Add( _row.Field<string>("SettingKey"),
_row.Field<string>("SettingValue"));
}
return Json(_mr);
}
Это было вызвано и возвращено через Ajax-вызов jquery:
<script type="text/javascript">
$('#machines').change(function () {
$(this).parents('form').submit();
$.ajax({
type: 'POST',
url: '@Url.Action("GetMachineSettings")', // we are calling json method
dataType: 'json',
data: {
_items: $("#machines").val() },
success: function(_items) {
var a=JSON.parse(_items);
$.each(a.Record, function (i, record) {
alert(record.key + " " + record.value);
});
},
error: function(ex) {
alert('Failed to retrieve Tasks.' + ex);
}
});
return false;
});
но он не работает и отправляет строку со всеми моими данными в формате Json из-за пустой ссылки, кроме как в цикле foreach:
{ "Настройки": { "X": "Y"}}
То, что я пытаюсь сделать, это показать простое предупреждение (на данный момент), которое будет отображать пару ключ / значение (и, что еще лучше, предупреждение для каждого ключа, а затем значение). Но я не уверен, как это можно сделать.