2009-06-12 9 views
1

J'ai un projet où il y a un certain nombre de boîtes de sélection qui sont chargées avec des données de référence, à savoir les types de clients. Pour ce faire, j'ai créé un contrôleur séparé qui renvoie les données en tant que résultat JSON. Ceci est appelé au chargement de la page via une fonction jQuery pour charger la liste de sélection. Si un utilisateur a sélectionné une option mais qu'une erreur de validation s'est produite, le contrôleur ajoute un message d'erreur de modèle et retourne à la vue avec les données de modèle non modifiées.ASP MVC Sélectionnez la liste avec JSON

Comment puis-je obtenir la sélection pour conserver les options sélectionnées? C'est-à-dire que l'utilisateur sélectionne l'option avec la valeur 123, lorsque le formulaire est renvoyé du poste au contrôleur, l'option sélectionnée n'est pas "resélectionnée" via le rechargement jquery.

Répondre

3

Sans voir votre code est difficile de vous fournir une réponse précise. Cependant, d'après ce que je sais, je peux supposer que quelque chose comme ça fonctionnera pour vous:

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