3

我使用選擇2 V4.0 https://select2.github.io/在ASP MVC項目,我想顯示從動態數據如何在select2.js v4.0中顯示ajax數據?

的版本舊的方式簡單的下拉3.6不起作用了:

我有交流#梅索德:

public JsonResult GetSrcMethod() 
{ 
      var list = new[] 
      { 
       new { id= 0, text= "Smith" }, 
       new { id= 1, text= "John" }, 
       new { id= 2, text= "Philippe" },  
      }.ToList(); 

      Object json = JsonConvert.SerializeObject(list); 
      return Json(json, JsonRequestBehavior.AllowGet); 
} 

因此,返回的數據是:

[{"id":0,"text":"Smith"},{"id":1,"text":"John"},{"id":2,"text":"Philippe"}] 

而且我有一個JavaScript代碼WHI CH曾在以前的版本3.6:

$(".example-select2").select2({ 
     ajax: { 
      dataType: 'json', 
      url: '@Url.Action("GetSrcLanguages", "GetCheckSet")', 
      results: function (data) { 
       return {results: data}; 
      }    
     } 
    }); 

它渲染顯示

你知道怎麼做,在V4.0「沒有找到結果」空下拉列表?

回答

3

Idid不一樣,JavaScript對象的屬性區分大小寫。這同樣適用於Texttext以及您希望使用全小寫的版本。

public JsonResult GetSrcLanguages() 
     { 
      var list = new[] 
      { 
       new { id = 0, text = "Smith" }, 
       new { id = 1, text = "John" }, 
       new { id = 2, text = "Philippe" },  
      }.ToList(); 

      Object json = JsonConvert.SerializeObject(list); 
      return Json(json, JsonRequestBehavior.AllowGet); 
     } 

另外,ajax.results方法被重命名爲ajax.processResults在4.0.0以避免與具有現有的方法results AJAX傳輸衝突。所以,你的JavaScript實際上應該看起來像

$(".example-select2").select2({ 
    ajax: { 
     dataType: 'json', 
     url: '@Url.Action("GetSrcLanguages", "GetCheckSet")', 
     processResults: function (data) { 
      return {results: data}; 
     }    
    } 
}); 
+0

謝謝,你是正確的,但肯定是有其他錯誤的原因,解決這個錯誤,它仍顯示「沒有找到結果」之後,的allmost所有的事情都改變了聖維特V4所以我假設結果方法肯定是貶值的,我正在尋找新的方法來做到這一點,但我沒有在文檔中找到它 – lambdaDev

+0

我用'processResults'替換了方法結果:'function(data){return {results:data};}':函數(數據){返回{結果:JSON.parse(數據)};}'它的工作原理!非常感謝你,你看到了錯誤!如果您通過添加該代碼示例來更新答案,我很樂意將其標記爲答案! :d – lambdaDev

相關問題