Search code examples
razorasp.net-mvc-4razor-declarative-helpers

How To Deal With spaces in an MVC4 asp.net App (without c#)


I'm having trouble wrestling with inserting spaces in commas in a foreach loop. Is there a better way to do this? It bother

@{ var multipleSpeakerSeparator = " "; }
@foreach (var speaker in session.SpeakersList)
{
     @multipleSpeakerSeparator <a href="@(speaker.SpeakerLocalUrl)"> 
     @speaker.UserFirstName @speaker.UserLastName </a>multipleSpeakerSeparator = ",";
}

Solution

  • Why not use String.Join:

    String.Join(",", session.SpeakersList.Select(i => "<a href=" + 
                   i.SpeakerLocalUrl + ">..</a>");
    

    I don't know if you can use @ syntax within String.Join, and how it would work, and how that would work with String.Join. Otherwise, using string concatenation as shown above would work.

    If you are trying to inject a space, a space literal should render appropriately. I'm surprised it does not. Anyway, using the foreach approach, you should be able to do @<text> </text>, and could conditionally do:

    @for (var i = 0; i < session.SpeakersList.Count; i++)
    {
         @{ 
           if (i > 0) { <text> </text> }
         }
    
         <a href="@(speaker.SpeakerLocalUrl)"> 
         @speaker.UserFirstName @speaker.UserLastName </a>multipleSpeakerSeparator = ",";
    }