如何将迭代计数从主页带到 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 是我从 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#剃须刀中完成

@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>

最新更新