簡體   English   中英

動態地將控制器返回的選擇框值呈現為json

[英]dynamically render selectbox values returned from controller as json

我正在處理發送一些ID的Ajax請求。 基於該ID,我正在查詢數據並以json的形式返回視圖。 這些數據用於填充視圖內的選擇框。

我有一個工作示例,該示例接收用於填充選擇框的字符串列表,但我希望將這些字符串與它的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);
}

在視圖上

 $(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));
  });
  ....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM