我正在尝试使用Razor模板:
@if(isNew) { <div class="new"> } ... @if(isNew) { </div> }
错误是:
cannot resolve the symbol 'div'
Razor不喜欢IF子句中的结尾div标签,我该如何让它工作?有没有逃脱我不得不使用?
解决方法
当您拆分开始/结束标签时,剃须刀不喜欢它,因为它无法正确解析HTML,因此您必须以纯文本方式将其转义:
@if(isNew) { @:<div class="new"> } ... @if(isNew) { @:</div> }
更常规的方法是在div内重复标记(使用部分或其他方式) – 哪种方法更可取,我会说,取决于条件div之间的标记的性质:
@if(isNew) { <div class="new"> <!-- some markup or partial view --> </div> } else { <!-- some markup or partial view --> }
我喜欢这种方法:
>所包含的标记可以有用地包含在部分中,以便在其他地方可重用.
>条件包装标记超过几行,转义标记在这一点变得凌乱.
@helper MainMarkup() { <!-- some markup or partial view --> } @if(isNew) { <div class="new"> @MainMarkup() </div> } else { @MainMarkup() }