在正确的位置渲染局部视图

本文关键字:染局 视图 位置 | 更新日期: 2023-09-27 18:22:46

尝试:将局部视图放置在telerik选项卡条中。

问题:视图显示在标签条上方,而不是第一个标签内。

我尝试过的:如果我使用RenderPage而不是RenderAction,则视图正确地显示在选项卡条中,但控制器不会被调用或加载网格视图的模型。

到目前为止的代码:

局部视图:

@model IEnumerable<MyModel>
@{
    ViewBag.Title = "Index";
}
@*My code to load a GridView*@

包含选项卡条的视图:

@{
    ViewBag.Title = "MyView";
}

@(Html.Kendo().TabStrip()
          .Name("tabstrip")
          .Items(tabstrip =>
          {
              tabstrip.Add().Text("Index")
                  .Selected(true)
                  .Content(@<text>
                    @{Html.RenderAction("Index", "MyController");}
                </text>);
              tabstrip.Add().Text("Index2")
                  .Content(@<text>
                </text>);                                 
          })
)

在正确的位置渲染局部视图

Kendo UI TabStrip的Content配置方法应用于"静态"内容。我所说的静态代码是指您已经拥有/知道的代码。对于加载局部视图,最好使用LoadContentFrom配置方法。此方法需要现有Action的有效URL,该URL返回目标部分视图:

@(Html.Kendo().TabStrip()
      .Name("tabstrip")
      .Items(tabstrip =>
      {
          tabstrip.Add().Text("Index")
              .Selected(true)
              .LoadContentFrom(Html.Action("Index", "MyController"));
          tabstrip.Add().Text("Index2")
              .Content(@<text>
            </text>);                                 
      })

)