Jeg har en razor sætning i Umbraco, der kan autogenerere en menu fint og fornemt.
Mit problem er, at jeg gerne vil have en if-sætning indlejret.
Koden, jeg har nu, og som fungerer, ser sådan ud:
@{ <ul> <li><div><a href="/" id="text_indent_start">HOME</a></div></li> @foreach (var c in Model.AncestorOrSelf(1).Children) { var selected = Array.IndexOf(Model.Path.Split(','),c.Id.ToString())>=0?"class=\"selected\"":""; <li @Html.Raw(selected)> <div> <a href="@c.Url">@c.Name</a></div> </li>
}
Jeg vil gerne lave en if-then sætning omkring <div> tagget, så den 6. gang den looper sætter en klasse på div-tagget. Det er i sig selv nemt nok. Men hvis jeg sætter en if-sætning ind efter "<li @Html.Raw(selected)>", så vises den på siden som tekst. Hvis jeg sætter et @ foran "if", så kommer der en fejlmeddelelse når jeg gemmer.
Er der nogen venlige folk, som kan give mig et godt råd her. På forhånd tak og venlig hilsen Lars
Koden ser fornuftig ud i sig selv, men den ender lige præcis dér, hvor jeg ikke vil have det.
Den opfatter c#-koden som tekst, der skal vises på siden. Se evt. [img]http://cphcap.inforce.dk/media/1129/screendump_cph.png[img]. Den rigtige navigation er øverst, den forkerte nederst.
Ved du eller andre, hvordan jeg slipper ud over, at den opfatter c# som tekst?
Venlig hilsen Lars
Koden er:
@{int i = 1;}
@{ <ul> <li><div><a href="/" id="text_indent_start">HOME</a></div></li> @foreach (var c in Model.AncestorOrSelf(1).Children) {
var selected = Array.IndexOf(Model.Path.Split(','),c.Id.ToString())>=0?"class=\"selected\"":""; <li @Html.Raw(selected)>
Jeg kan få det til at virke nu. Der må bare ikke komme først html, så C#, så html og så c#. Det bliver en smule mere kluntet, og hvis nogen kan få det til at virke på en mere elegant måde så lytter jeg hellere end gerne!
Her er den kode, der virker:
@inherits umbraco.MacroEngines.DynamicNodeContext
@{var i = 1;}
@{ <ul> <li><div><a href="/" id="text_indent_start">HOME</a></div></li> @foreach (var c in Model.AncestorOrSelf(1).Children) { var selected = Array.IndexOf(Model.Path.Split(','),c.Id.ToString())>=0?"class=\"selected\"":"";
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.