我正在发送ajax请求,发送一些id。根据该id 我正在查询数据并以 json 形式返回到 View 。 这些数据用于填充 View 内的选择框。
我有一个工作示例,它接收我用来的字符串列表 填充选择框,但我想与这些字符串及其 id 值一起使用,这样我就可以 在选择框字符串及其 id 内呈现。 我怎样才能做到这一点。
这就是我现在用的
public JsonResult GetKeywords(int id)
{
List<string> data = new List<string>();
var dataKeywords = db.KeyWords.Where(x => x.id == id).ToList();
foreach (var item in dataKeywords)
{
data.Add(item.Title);
// how to pass id?
}
return Json(data);
}
在 View 上
$(document).ready(function () {
...
options.success = function (dataList) {
$("#myKeywords").empty();
for (var i = 0; i < dataList.length; i++) {
$("#myKeywords").append("<option>" + dataList[i] + "</option>");
}
$("#myKeywords").prop("disabled", false);
};
});
最佳答案
您可以以 json 形式返回匿名对象的集合
var dataKeywords = db.KeyWords.Where(x => x.id == id).Select(x => new
{
ID = x.id,
Text = x.Title
};
return Json(dataKeywords); // JsonRequestBehavior.AllowGet?
在脚本中
options.success = function(dataList) {
$.each(dataList, function(index, item) {
$("#myKeywords").append($('<option></option>').val(item.ID).text(item.Text));
});
....
关于javascript - 动态将从 Controller 返回的选择框值呈现为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29342454/