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

Razor HTML条件输出

发布时间:2020-12-14 23:46:32 所属栏目:资源 来源:网络整理
导读:我有一个项目列表,我想输出作为主要内容(主要内容未包含在下面).每个Item都有3个属性:Section Name,Label和Value.每个项目都包含在一个中,每次章节名称更改时我都要打开一个(并关闭前一个,如果有的话).我正在使用带有此代码的Razor视图: @foreach (LocalSt
我有一个项目列表,我想输出作为主要内容(主要内容未包含在下面).每个Item都有3个属性:Section Name,Label和Value.每个项目都包含在一个中,每次章节名称更改时我都要打开一个(并关闭前一个,如果有的话).我正在使用带有此代码的Razor视图:
@foreach (LocalStorageItem lsi in Model) { 
    string fld_name = "f_" + lsi.ItemName;
    if (lsi.SectionName != sn) {
        if (sn != "") { 
            Html.Raw("</fieldset>"); 
        }
        sn = lsi.SectionName;
        <h2>@sn</h2>
        Html.Raw("<fieldset>");              
    }
        <div class="row">
            <div class="ls_label">@lsi.ItemName</div>
            <div class="ls_content" name="@fld_name" id="@fld_name">.</div>
        </div>        
 }
 @if (Model.Count != 0) {
    Html.Raw("</fieldset>");
 }

问题是:每次章节名称更改时,都不会生成字段集标记(打开和/或关闭).我哪里错了?如果我不使用Html.Raw(或@:作为替代),VS2010解析器会发出错误信号.

解决方法

调用Html.Raw返回一个IHtmlString;它不会向页面写任何内容.

相反,你应该写

@:</fieldset>

使用@:强制Razor将其视为纯文本,因此不需要格式良好.

但是,通过调用GroupBy并创建嵌套的foreach循环,可以使代码更加清晰.

(编辑:李大同)

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

    推荐文章
      热点阅读