2009-10-01 7 views
1

Supposons que j'ai une forme en vue de la ligne dynamique avec des champs liés à viewmodel comme:Comment modifier le séparateur pour les données de groupe dans formCollection dans la vue MVC?

<%for (int i = 1; i <= 5; i++) 
{ %> 
    <tr> 
    <td style="width: 100%"> 
     <%= Html.TextBox("Link", Model.Websites[i.ToString()].Links)%> 
    </td> 
     ..... 
    </tr> 
<%} %> 

Lorsque le formulaire est affiché, dans FormCollection, toutes les données provenant de TextBox « Link » est une chaîne séparée par une virgule, . comme, Yahoo.com, youtube.com, google.com

Ensuite, je peux utiliser des virgules pour extraire les données tableau comme:

string[] links = formdata["Link"].Split(','); 

Mais la question est la suivante: si l'utilisation de données saisies comprennent des virgules, comme "mysite, go.com", je peux obtenir les bonnes données pour chaque article.

Comment résoudre ce problème? est-il possible de définir un séparateur spécial pour la chaîne dans FormCollection?

+0

"toutes les données provenant de TextBox 'Link' est une chaîne séparée par des virgules ,. like, Yahoo.com, youtube.com, google.com". C'est une fausse prémisse. Votre question ne peut pas être répondue, car sa prémisse est incorrecte. Regardez dans Firebug ou Fiddler. –

+0

Salut, ici "Yahoo.com", "youtube.com", "google.com" sont des exemples de données saisies dans la zone de texte, ne signifie pas quelque chose pour ces site. – KentZhou

Répondre

0

Utilisez cette

public ActionResult MyActionToHandleForm(string[] Link) 
{ 
} 

Vous devriez obtenir automatiquement ensemble correct. Lisez here pour plus d'informations.

Notez que vous pouvez également être en mesure de le faire (nom textbox « Link [i] »)

<%for (int i = 1; i <= 5; i++) 
{ %> 
    <tr> 
    <td style="width: 100%"> 
     <%= Html.TextBox("Link[" + i + "]", Model.Websites[i.ToString()].Links)%> 
    </td> 
     ..... 
    </tr> 
<%} %> 

avec la même chaîne [] paramètre d'entrée d'action de lien, mais dans ce cas, vous serez sûr pour obtenir des chaînes correctes pour les indices corrects (même si, par exemple, vous en cachez quelques-uns).

Questions connexes