2009-06-12 10 views
1

参照データ、つまり顧客タイプがロードされているいくつかの選択ボックスがあるというプロジェクトがあります。これを行うために、データをJSON結果として返す別個のControllerを作成しました。これはselectリストをロードするためにjQuery関数を介してページロード時に呼び出されます。JSONを使用したASP MVC選択リスト

カスタマーコントローラに送信すると、オプションが選択されていても検証エラーが発生した場合、コントローラはモデルエラーメッセージを追加し、変更されていないモデルデータを含むビューに戻ります。

選択したオプションを保持するにはどうすればよいですか?ユーザーが値123のオプションを選択すると、フォームがポストからコントローラに返されたとき、選択されたオプションはjqueryリロードによって「再選択」されません。

答えて

3

あなたのコードを見ることなく、正確な答えを提供することは難しいです。しかし、私が知っていることに基づいて、このようなものがあなたのために働くと仮定することができます:

$(function() { 
    $.getJSON("/Customer/GetCustomerTypes", null, function(data) { 
    //Selected CustomerType received from the Customer Controller... e.g. 123 
     var selectedCustomerType = <%=selectedCustomerType %>; 
     var dropdownList = $("#customerTypeList")[0]; //Id of the dropdown  
     $.each(data, function(index, optionData) { 
      var option = new Option(optionData.Text, optionData.Value);   

      if(optionData.Value == selectedCustomerType) { 
      $(option).attr('selected','selected'); 
      } 

      if ($.browser.msie) { 
       dropdownList.add(option); 
      } 
      else { 
       dropdownList.add(option, null); 
      } 
     }); 
    }); 
}); 
関連する問題