如何将迭代计数从主页带到剃须刀中的嵌套局部视图

How to bring the iteration count from main page to its nested partial view in razor

我有一个带有嵌套局部视图的剃刀页面,我从 javascript.

加载它

这是我的页面的样子(我编辑了页面代码以使其更短以便于阅读

@model List<HLS.ViewModels.SurveyEditor.DraftFormDto>
<div class="wrapper">
    <div class="row">
        <div class="col-md-12">
        @for (int i = 0, length = Model.Count(); i < length; i++)
        {
            <div>
                 @Model[i].Name
            </div>
            <div class="tab-content clearfix page-placeholder">

            </div>
        }
        </div>
     </div>
</div>

Div 和 'page-placeholder' class 是我从 javascript 加载它的地方,用于我的部分视图。

这是我在上面的占位符中加载的部分视图页面。

@model List<HLS.ViewModels.SurveyEditor.DraftFormDto>
<div>
   @for (int k = 0, length = Model[#].DraftSection.Count(); k < length; k++)
   {
     <div>
        @Model[#].DraftSection[k].Text
     </div>
   }
</div>

记下“#”符号。

那有什么办法可以把主页迭代索引('i')替换成'#'符号吗?

实际代码实际上有多个嵌套的分部视图。

欢迎任何包括 js 的建议,但当然我更希望它可以在 c# razor 中完成

@model List<HLS.ViewModels.SurveyEditor.DraftFormDto>
<div class="wrapper">
    <div class="row">
        <div class="col-md-12">
        @for (int i = 0, length = Model.Count(); i < length; i++)
        {
            <div>
                 @Model[i].Name
            </div>
            <div class="tab-content clearfix page-placeholder" data-count="@i">

            </div>
        }
        </div>
     </div>
</div>

加载局部视图时使用 $('.page-placeholder').data('count') 获取数据计数并创建 MainDraftFormDtoModel。

创建新模型 MainDraftFormDtoModel

public class MainDraftFormDtoModel {
public int count {get;set;}
public List<HLS.ViewModels.SurveyEditor.DraftFormDto> DraftFormDto {get;set;}
}

在局部视图中传递 MainDraftFromDtoModel

@model MainDraftFromDtoModel
<div>
   @for (int k = 0, length = Model.DraftFormDto[Model.count].DraftSection.Count(); k < length; k++)
   {
     <div>
        @Model[Model.count].DraftSection[k].Text
     </div>
   }
</div>