Reputation: 266
I have this code
<div class="round-3-top">
<div class="round-2-top">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
<div class="round-2-bottom">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
</div>
<div class="round-3-bottom">
<div class="round-2-top">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
<div class="round-2-bottom">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
</div>
But i want generate dynamically, how i do that?
Ex.: i have 4 rounds, this would be the generated code
<div class="round-4-top">
<div class="round-3-top">
<div class="round-2-top">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
<div class="round-2-bottom">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
</div>
<div class="round-3-bottom">
<div class="round-2-top">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
<div class="round-2-bottom">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
</div>
</div>
<div class="round-4-bottom">
<div class="round-3-top">
<div class="round-2-top">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
<div class="round-2-bottom">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
</div>
<div class="round-3-bottom">
<div class="round-2-top">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
<div class="round-2-bottom">
<div class="round-1-top"></div>
<div class="round-1-bottom"></div>
</div>
</div>
</div>
I try using TagBuilder in MVC C# but I can not do. What should happen is, if you are 3 rounds, adding he should go inside each div is like the example above. Any idea how can I develop it?
Upvotes: 0
Views: 190
Reputation: 36
You can do this with MVC Helpers that return a MVCHtmlString. The helper class is below. recursion is perfect for this. A helper class
public static class Helpers
{
public static MvcHtmlString GetStructure(int size)
{
return MvcHtmlString.Create(GetRecursiveStructure(size));
}
private static string GetRecursiveStructure(int size)
{
if (size == 0)
{
return "";
}
else
{
TagBuilder topTag = new TagBuilder("div");
topTag.AddCssClass(string.Format("round-{0}-top", size));
topTag.InnerHtml = GetRecursiveStructure(size - 1);
TagBuilder bottomTag = new TagBuilder("div");
bottomTag.AddCssClass(string.Format("round-{0}-bottom", size));
bottomTag.InnerHtml = GetRecursiveStructure(size - 1);
return topTag.ToString() + bottomTag.ToString();
}
}
}
In your view do this:
@Helpers.GetStructure(4)
Upvotes: 1