2011-12-14 56 views
0

我使用jQuery使用下面的代碼重新填充DropDownListFor刷新MVC DropDownListFor與jQuery

$('#Teste).change(function() { 
      $.ajax({ 
       type: 'GET', 
       url: '/Teste/Teste/Teste/' + $(this).val(), 
       dataType: 'json', 
       success: function (data) { 
        var ddl = $('#TesteTw); 
        ddl.empty(); 
        $(data).each(function() { 
         ddl.append($('<option/>', { 
          value: this.Value 
         }).html(this.Text)); 
        }); 
       } 
      });   
}); 

但HTML不刷新,我還是上了DropDownList相同的項目。

雖然如果我用jQuery得到DropDownList值,我會得到更新的值。

任何想法?

回答

1

你錯過以下線收盤報價:

$('#Teste).change(function() { // should be $('#Teste').change(function() { 
var ddl = $('#TesteTw);   // should be var ddl = $('#TesteTw'); 

此外,你遍歷返回的數據,這我假設的方式是一個數組不是想法。考慮執行下列操作:

for (var i = 0; i < data.length; i++) { 
    ddl.append(
     $('<option/>') 
      .val(data[i]) 
      .html(data[i].Text) 
    ); 
} 
0

下面是一個可能的解決方案,我已經修改了每種方法:

$('#Teste').change(function() { 
      $.ajax({ 
       type: 'GET', 
       url: '/Teste/Teste/Teste/' + $(this).val(), 
       dataType: 'json', 
       success: function (data) { 
        var ddl = $('#TesteTw'); 
        ddl.empty(); 
        $(data).each(function() { 
         ddl.append(
          $("<option />", { 
           value: this.Value, 
           text: this.Text}); 
         //OR 
         ddl.append(
          $("<option />") 
           .attr("value", this.Value) 
           .text(this.Text)); 
        }); 
       } 
      });   
});