【发布时间】:2019-09-12 00:24:15
【问题描述】:
我有一本包含字符串的字典: 键:“X” 值:“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);
}
这已被调用并通过 jquery Ajax 调用返回:
<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"}}
我试图做的是显示一个简单的警报(此时),它将显示键/值对(更好的是,每个键的警报,然后是值)。但我不确定如何实现。
【问题讨论】:
-
我们能看到从服务器返回的原始数据吗?将
console.log(_items);行添加为success处理程序的第一行... -
它甚至没有命中成功处理程序。它只是失败并输出我给出的示例......
-
不确定这里的 getmysettings_SqlCall 是什么。
标签: c# jquery json asp.net-mvc