2013-04-06 50 views
1

我有這樣的代碼在我看來:填充的DropDownList使用jQuery和JSON ASP.Net MVC

<script> 
    var isChanged = false; 
    $(function() { 
     $('#stageOne').change(function() { 
       $.ajax({ 
        url: "/Shop/ChangeStageTwo/", 
        data: { item: $("#stageOne option:selected").text() }, 
        type: 'post', 
        success: function (myJSONdata) { 
         $("#stageTwo").html("");  
         var items = myJSONdata; 
         for (var i = 0; i < items.length; i++) { 
          var item = items[i]; 
          var optionhtml = '<option value="' + item.text + '">' + items[i] + '</option>'; 
          $("#stageTwo").append(optionhtml); 
         } 
       } 
      }); 

     }); 
    }); 
</script> 

這是我ChangeStageTwo功能:

public JsonResult ChangeStageTwo(string item) 
    { 
     // Do something...   

     var query = from f in db.Stages 
        where f.Code.Contains(tempDelivCod) && f.Code.Length > 4 
        select f.Name; 
     var sItems = new SelectList(query); 
     return Json(sItems, JsonRequestBehavior.AllowGet); 
    } 

但在運行時,我得到[對象對象]在我的DropDownList中,而不是確切的值。問題是什麼?

+1

你可以添加一個典型的例子JSON好嗎? – JoDev 2013-04-06 13:44:09

+0

Json數據是一個像這樣的「aa」,「bb」,...現在iget未定義的錯誤的字符串列表! – Angelina 2013-04-06 19:02:47

回答

1

我覺得這個功能將作品:

var items = myJSONdata;//somethink like ["aa", "bb"]... 
$(items).each(function(index, optionText) { 
    $("#stageTwo").append($('<option />').attr('value', optionText).text(optionText)); 
}); 
0

這條線:

var optionhtml = '<option value="' + item.text + '">' + items[i] + '</option>'; 

應該是這樣的:

var optionhtml = '<option value="' + item.text + '">' + item.text + '</option>'; 

var optionhtml = '<option value="' + item.id + '">' + item.text + '</option>'; 

如果您提供JSON輸出,我可以更具體。