【问题标题】:RenderAction Block inside @foreach@foreach 内的 RenderAction 块
【发布时间】:2015-08-06 20:29:32
【问题描述】:

我试图将不同的模块插入到一个视图中。 问题是,我尝试在 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>
}

对于模型中的每个项目,视图应该呈现一个动作,它应该显示另一个部分视图。

问题是,系统意味着我不必在@foreach 中插入“@{”。

任何想法或在这种情况下不打算这样做。

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    使用

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

    改为。

    【讨论】:

    • 真的吗?我尝试了很多不同的东西......也许我监督了解决方案。非常感谢=)
    【解决方案2】:

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

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

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

    尝试替换

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多