javascript - 尝试使用 JSON 数据填充表单,一切都未定义
问题描述
我正在使用 Umbraco CMS,这是一个基于 .NET Framework 构建的 ASP.NET 网站。我有一个返回 JSON 数据的 API。我的最终目标是以某种形式显示这些数据,然后可以对其进行修改并发送到不同的 API 以更新数据。
但是,问题是我只是在 data[i].anything 上看到 undefined。它也会永远循环,直到我关闭浏览器。
这是从外部 API 获取数据的控制器方法:
[HttpGet()]
public string GetReportParamaters(string id)
{
string json;
using (WebClient wc = new WebClient())
{
wc.Headers.Add("Content-Type", "application/json");
wc.Headers.Add("Accept:application/json");
json = wc.DownloadString("http://apiurl/" + id);
}
return json;
}
当我在这里设置断点时,它似乎正在工作。当我访问与此方法对应的 URL 时,JSON 被包装在一个 XML 标记中,我不确定这是否是问题的一部分。但无论哪种方式,我都能看到我期望的 JSON 数据。
这是我视图中用于显示 JSON 数据的 HTML 和 Javascript,这是我看到未定义的地方:
HTML:
<form id="ssrsData">
</form>
JavaScript:
<script>
$("#reports").change(function () {
$.get("/ControllerURL", { id: $('#reports').find(":selected").val() }, function (data) {
var s = '';
for (var i = 0; i < data.length; i++) {
s += '<label for="' + data[i].Name + '">' + data[i].Name + ':</label><input type="text" id="' + data[i].Name + '" name="' + data[i].Name + '" value="' + data[i].Value + '"><br><br>'
}
$("#ssrsData").html(s);
});
});
JavaScript 查找要更改的下拉列表。选择一个选项后,它会将 ID 发送到控制器以获取 JSON 数据。然后它解析 HTML 中的 JSON 并为每个 JSON 对象添加文本框。
至少在理论上,data[i].Name 和 data[i].Value 都显示未定义。循环也是无限的,它只是不断添加文本框,直到我停止它。
当我在 Chrome 的控制台中调用 $.get("/controllerURL") 时,它看起来像是在返回我的 JSON 数据。
我需要做什么才能使用我的 JSON 数据生成表单?
解决方案
推荐阅读
- angular - 反应形式重置,保留状态或不 - Angular 6
- mysql - sql查询各部分的执行顺序是什么
- amazon-web-services - Java 7 上的 AWS 加密开发工具包
- arrays - 在循环中更改数组元素的背景颜色
- php - 网站左侧有一个“1”。我不知道它是从哪里来的
- javascript - 如何使用 nuxt.config.js (Safari) 在主屏幕上的 PWA 应用程序和书签上设置图标
- angular - Angular mat-select 在 Safari 浏览器中不起作用
- c# - MediaPlayerElement 的 UWP MediaEnded 事件处理程序引发 System.ArgumentException
- webview - 颤抖的付款之旅
- ffmpeg - MP4 - 获取当前字幕文本