I am trying to do this using Razor templating:
@if(isNew) { <div class="new"> } ... @if(isNew) { </div> }
The error is:
cannot resolve the symbol 'div'
Razor doesn't like the ending div tag inside the IF clause, how can I get this to work? Is there an escape I have to use?
It is unnecessary to add an explicit closing “ </div> “ tag to the string you pass to . html() , because jQuery will take care of that for you.
Razor doesn't like it when you split start/end tags up like this as it can't parse the HTML properly, so you have to escape them as plain text:
@if(isNew) { @:<div class="new"> } ... @if(isNew) { @:</div> }
The more conventional approach would be to repeat the markup inside the div (using partials or otherwise) - which approach is more desirable, I would say, is dependent upon the nature of the markup in between the conditional divs:
@if(isNew) { <div class="new"> <!-- some markup or partial view --> </div> } else { <!-- some markup or partial view --> }
I would prefer this approach if either:
I should also add the option of using helper methods:
@helper MainMarkup() { <!-- some markup or partial view --> } @if(isNew) { <div class="new"> @MainMarkup() </div> } else { @MainMarkup() }
This is useful if you want to use the second option above but avoid repeating markup or nesting too many partials (particularly if this markup is only relevant for this view).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With