2011-11-14 3 views
0

J'ai une collection de formulaires (fc) et j'essaie d'ajouter à un courriel les valeurs de la 'clé' et de la 'valeur'. Je n'ai aucun problème avec la clé (newKey), mais je n'arrive pas à coder la valeur correctement. La boucle 'for' vérifie si les trois premiers caractères de la clé sont 'ddl', indiquant qu'elle provient d'une liste déroulante. Si c'est le cas, la boucle doit ajouter la valeur du contrôle dropdownlist (la valeur de la paire clé-valeur). (Sinon, la boucle appelle une autre méthode pour ajouter un oui ou un non basé sur la valeur d'un contrôle checkbox) Merci d'avance.ASP.Net MVC Post: paires clé-valeur - impossible de récupérer la valeur

 //Append new key-value pairs implemented since legacy keys 
     for (int i = 0; i < newKeys.Length; i++) 
     { 

      //Checks for prefix of element to determine type of element 
      if(newKeys[i].Substring(0,3) == "ddl"){ 
       sb.Append(newKeys[i] + ": " + fc.GetValue(newKeys[i]) + "\",<br />"); 
       sb.Append(newKeys[i] + ": " + fc.GetValues(newKeys[i].ToString()) + "\",<br />"); 
      } 
      else{ 
      sb.Append(newKeys[i] + ",\"" + Boolean(fc[newKeys[i]]) + "\",<br />"); 
      } 
     } 

Les 2 commandes sb.append renvoient le suivant:

ddlStratacacheConstellationManagerRole: System.Web.Mvc.ValueProviderResult " ddlStratacacheConstellationManagerRole: System.String []",

+0

que se passe-t-il à la place? Pourriez-vous nous fournir un exemple de sortie (ou d'entrée)? – Zruty

+0

Le premier sb.Append renvoie la valeur suivante: System.Web.Mvc.ValueProviderResult ".La seconde sb.Append retourne la valeur suivante: System.String []" BY THE WAY, j'ai omis les valeurs de clé dans le au-dessus des résultats car ils sortent très bien! – Susan

Répondre

0

Le les valeurs que vous écrivez ne sont pas du type String, ni la méthode ToString() substituée.

C'est pourquoi la méthode standard object.ToString() est appelée et le nom du type de l'objet est ajouté à la chaîne. Pour remédier à cela, vous devez remplacer la méthode ToString() de toutes les valeurs possibles de la collection de formulaires, ou penser à un autre algorithme qui irait sur les collections et afficherait les valeurs correspondantes.

Questions connexes