2010-03-10 8 views
4

J'ai une application ASP.Net-MVC utilisant LinqToSql. J'ai une table de sous-traitance, une table service_lines et une table de mappage/liaison Service_lineToSubcontracts qui contient le subcontract_id et le service_line_id. Dans la vue de sous-traitance, j'aimerais répertorier les lignes de service correspondantes.Afficher la liste des valeurs séparées par des virgules sans virgule flottante

Cela fonctionne, mais a une virgule de fin.

<% foreach (var sls in item.Service_lineToSubcontracts) 
    { %> 
    <%= Html.Encode(sls.service_line.service_line_name+", ") %> 
<% } %> 

Je pense que je devrais être en mesure d'utiliser quelque chose comme String.Join(", ", item.Service_lineToSubcontracts.ToArray()) mais je ne suis pas certain de la façon d'obtenir le tableau de service_line_names.

Répondre

3

Faites ceci:

<%= Html.Encode(string.Join(", ", 
item.ServiceLineNames.Select(x=>x.service_line_name).ToArray())) %> 
+0

Merci. Cela m'a conduit dans la bonne direction '<% = Html.Encode (string.Join (", ", item.Service_lineToSubcontracts.Select (x => x.service_line.service_line_name) .ToArray()))%>' – RememberME

+0

Great . Je n'ai pas bien compris comment vos classes étaient configurées, donc j'ai fait de mon mieux;) – Keltex

0

Dans la Keltex réponse que vous pouvez omettre d'appeler la méthode ToArray() puisque la méthode String.Join fonctionne avec tout IEnumerable<T>.

Un indice pour une forme plus concise et personnalisable est de remplacer la méthode ToString() de la classe de l'élément de la collection, dans votre cas, il pourrait se faire comme:

public class Service_lineToSubcontract 
{ 
    public Service_line service_line {get; set;} 
    ... 
    public override string ToString() 
    { 
    return service_line.service_line_name; // Or whatever you need 
    } 
} 

puis utiliser la forme plus concise:

<%= Html.Encode(String.Join(", ", item.Service_lineToSubcontracts)) %> 

peut-être cette astuce n'est pas le meilleur choix dans ce contexte mais il simplifier beaucoup quand vous avez des collections de paires clé-valeur ou que vous avez besoin d'une liste séparée par des virgules des descriptions composées de plus d'une propriété

Questions connexes