2016-06-25 5 views
1

Ich habe diese string:String-Manipulation in HTML-Liste

var audit = "Id:1;Name:John;Address:|||Id:123;Street:123 Main St.;City:LA;State:|||Id:234;Name:California;Code:CA|||;ZipCode:12345|||;IsActive:true"; 

Wie kann ich schalten Sie ihn in:

<ul> 
    <li>Id: 1<li> 
    <li>Name: John<li> 
    <li> 
     Address: 
     <ul> 
      <li>Id: 123<li> 
      <li>Street: 123 Main St.<li> 
      <li>City: LA<li> 
      <li> 
       State: 
       <ul> 
        <li>Id: 234<li> 
        <li>Name: California<li> 
        <li>Code: CA<li> 
       </ul> 
      <li> 
      <li>ZipCode: 12345</li> 
     </ul> 
    <li> 
    <li>IsActive: true<li> 
</ul> 

Im Moment habe ich eine bin mit ViewHelper aber es funktioniert nicht vollständig mit dem ||| über den Umgang sachen:

@helper ChangedDisplay(string changed) 
{ 
    if (string.IsNullOrEmpty(changed) || changed.Trim().ToLower() == "n/a") 
    { 
     @:n/a 
    } 
    else 
    { 
     var rows = changed.Split(';'); 

     <ul> 
      @foreach (var row in rows) 
      { 
       var columns = row.Split(':'); 
       <li> 
        @(columns.First()): 
        @if (columns.Last().Contains("|||")) 
        { 
         @ChangedDisplay(columns.Last().Trim('|')) 
        } 
        else 
        { 
         @columns.Last() 
        } 
       </li> 
      } 
     </ul> 
    } 
} 

danke für ihre hilfe.

+0

Die HTML geschrieben Sie ist inkonsistent und Postleitzahl fehlt. Nicht sicher, was du erreichen willst. – derloopkat

+0

Ok, ZipCode Teil behoben ... Weißt du nicht was ich erreichen will? Wie kann ich es für Sie klarer machen? –

Antwort

2

So:

 audit = "Id:1;Name:John;Address:|||Id:123;Street:123 Main St.;City:LA;State:|||Id:234;Name:California;Code:CA|||;ZipCode:12345|||;IsActive:true"; 


     var auditHtml = "<ul><li>" + audit 
      .Replace("|||;", "</li></ul><li>") 
      .Replace(":|||", ":<ul><li>") 
      .Replace(";", "</li><li>") 
      + "</li></ul>" 
     ;