@foreach里面有RenderAction块

时间:2015-08-06 11:57:19

标签: c# asp.net-mvc

我试图将不同的模块插入一个视图中。 问题是,我尝试在foreach循环中渲染一些视图。

@model IEnumerable<AZG.Models.Categories>

@foreach (var item in Model)
{
    <div role="tabpanel" class="tab-pane active" id="@item.Alias">
        <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
            <div class="panel panel-default">
                <div class="panel-heading" role="tab" id="headingThree">
                    <h4 class="panel-title">
                        <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
                            @item.Name
                        </a>
                    </h4>
                </div>
                <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
                    <div class="panel-body">
                        @{Html.RenderAction("PartialSubCategories", "JobReferences", new { id = item.CategoryId });}
                    </div>
                </div>
            </div>
        </div>
    </div>
}

对于模型中的每个项目,视图应该呈现一个Action,它应该取消另一个部分视图。

问题是,系统意味着,我不必插入&#34; @ {&#34;在@foreach里面。

在这种情况下,任何想法或不是无意义的。

2 个答案:

答案 0 :(得分:1)

使用

@Html.Action("PartialSubCategories", "JobReferences", new { id = item.CategoryId })

代替。

答案 1 :(得分:0)

Html.RenderAction直接在页面上呈现结果。

Html.Action返回一个字符串作为结果。

此外,您不需要在@{...}代码块中使用剃刀代码块@foreach

尝试替换

@{Html.RenderAction("PartialSubCategories", "JobReferences", new { id = item.CategoryId });}

@Html.Action("PartialSubCategories", "JobReferences", new { id = item.CategoryId })