如何将迭代计数从主页带到剃须刀中的嵌套局部视图
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>
我有一个带有嵌套局部视图的剃刀页面,我从 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>