【发布时间】:2019-08-24 23:22:13
【问题描述】:
我是 MVC 新手,不知道如何解决这个问题。
在控制器中,我有一个序列化为 JSON 的列表(填充有 Api 数据),我需要使用此 JSON 数据在视图中填充下拉列表。
我很困惑我应该从控制器返回什么,接下来我应该做什么,我这样做对吗?
现在我有这个:
型号:
public class Tablet {
public int Id { get; set; }
public string ManufactureDate { get; set; }
public string Description { get; set; }
public string Country { get; set; }
}
DataController.cs
Public ActionResult GetData(Tablet tablet)
{
List<Tablet> data = new List<Tablet>();
// ... Code to retrieve the data from API
string jsonRes = JsonConvert.SerializeObject(data);
return View(jsonRes);
}
在视图中,我需要在下拉列表中显示 ID:
View.cshtml
<select class="dropdown" id="dropdownData"></select>
<script>
$(document).ready(function () {
$.ajax({
url: "/Data/GetData/",
type: 'GET',
success: function (jsonRes) {
console.log(jsonRes[i]);
var s = '<option value="-1">Please Select</option>';
for (var i = 0; i < jsonRes.length; i++) {
s += '<option value="' + jsonRes[i].Id+ '">' + '</option>';
}
$("#dropdownData").html(s);
}
});
});
</script>
【问题讨论】:
-
您是否在序列化之前填充了您的
List<Tablet> data? -
是的,列表中填充了序列化之前的API数据。它也在控制台中将数据显示为 json 对象。所以,对我来说,问题是将这个 json 传递给 View。
-
更改s += ''; to s += '';你只是在分配价值。但是没有显示。请根据我提供的代码更改此设置。另外,请确保您在列表中填写了值。
-
请查看此链接:stackoverflow.com/questions/30084568/… 它非常接近您的问题。
-
@JyothishBhaskaran 我这样做了,它在下拉列表中返回“未定义”。
标签: c# json model-view-controller dropdown