加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 当我在if子句中放置一个关闭div标签时,Razor抱怨

发布时间:2020-12-15 17:37:26 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Razor模板: @if(isNew){ div class="new"}...@if(isNew){ /div} 错误是: cannot resolve the symbol 'div' Razor不喜欢IF子句中的结尾div标签,我该如何让它工作?有没有逃脱我不得不使用? 解决方法 当您拆分开始/结束标签时,剃须刀不喜欢它
我正在尝试使用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()
}

如果要使用上述第二个选项,但避免重复标记或嵌套太多部分(特别是如果此标记仅与此视图相关),则此功能非常有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读