0

如果我有一个主要的剑道cshtml视图与剑道网格的细节是另一个网格,一个细节是另一个网格,发生无效的模板错误。下面显示了一个示例,其中的代码对于手头的问题来说不是必需的,为了简化目的(不显示,但数据源是使用ajax的sql)替换为“.......”。做3个级别的剑道网格深度时的模板错误(即一个主网格的细节网格的细节网格)

文件1:Index.cshtml

<div id="dvFileGroupSummaryGrid" style="width: auto;"> 
     @(Html.Kendo().Grid<OverallSummary>() 
      .Name("FileGroupSummaryGrid") 
      .Columns(columns => 
       { 
    ......... 
       } 
      .AutoBind(true) 
      .ClientDetailTemplateId("fileGroupFilesTemplate") 
    ......... 
</div> 
<script id="fileGroupFilesTemplate" type="text/kendo-tmpl"> 
    @Html.Partial("_FileGroupFilesSummary") 
</script>' 

文件2:_FileGroupFilesSummary.cshtml

@(Html.Kendo().TabStrip() 
    .Name("TabStrip_#=FileGroupID#") 
    .SelectedIndex(0) 
    .Items(items => 
     { 
      items.Add().Text("File Group Files Summary").Content(@<text> 
        @(Html.Kendo().Grid<FileGroupSummary>() 
         .Name("FileGroupFilesSummaryGrid_#=FileGroupID#") 
          .Columns(columns => 
           { 
           ........... 
           }) 
          ........ 
          .AutoBind(true) 
          .ClientDetailTemplateId("fileResultsTemplate") 
          .ToClientTemplate() 
          ) 
       </text> 
     ); 
    }) 
    .ToClientTemplate() 
    ) 

<script id="fileResultsTemplate" type="text/kendo-tmpl"> 
    @Html.Partial("_FileResults") 
</script> 

文件3:_FileResults.cshtml

@(Html.Kendo().TabStrip() 
    .Name("TabStrip_#=MonitoredFileKey#") 
    .SelectedIndex(0) 
    .Items(items => 
     { 
      items.Add().Text("File Results").Content(@<text> 
       @(Html.Kendo().Grid<MonitoredFileResults>() 
       .Name("MonitoredFileResultsGrid_#=MonitoredFileKey#") 
       .Columns(columns => 
       { 
       ........... 
       }) 
      ......... 
      .AutoBind(true) 
      .ToClientTemplate() 
      ) 
     </text> 
     ); 
    }) 
    .ToClientTemplate() 
) 

回答

0

的关键在于这个问题变成了因为对第三级细节网格的局部视图引用必须位于顶层视图(index.csht)中毫升)而不是在实际引用它的部分视图中。为此更改调整的代码如下所示。

文件1 Index.cshtml

<div id="dvFileGroupSummaryGrid" style="width: auto;"> 
     @(Html.Kendo().Grid<OverallSummary>() 
      .Name("FileGroupSummaryGrid") 
      .Columns(columns => 
       { 
    ......... 
       } 
      .AutoBind(true) 
      .ClientDetailTemplateId("fileGroupFilesTemplate") 
    ......... 
</div> 
<script id="fileGroupFilesTemplate" type="text/kendo-tmpl"> 
    @Html.Partial("_FileGroupFilesSummary") 
</script>' 
<script id="fileResultsTemplate" type="text/kendo-tmpl"> 
    @Html.Partial("_FileResults") 
</script> 

文件2 _FileGroupFilesSummary.cshtml

@(Html.Kendo().TabStrip() 
    .Name("TabStrip_#=FileGroupID#") 
    .SelectedIndex(0) 
    .Items(items => 
     { 
      items.Add().Text("File Group Files Summary").Content(@<text> 
        @(Html.Kendo().Grid<FileGroupSummary>() 
         .Name("FileGroupFilesSummaryGrid_#=FileGroupID#") 
          .Columns(columns => 
           { 
           ........... 
           }) 
          ........ 
          .AutoBind(true) 
          .ClientDetailTemplateId("fileResultsTemplate") 
          .ToClientTemplate() 
          ) 
       </text> 
     ); 
    }) 
    .ToClientTemplate() 
    ) 

文件3 _FileResults.cshtml

@(Html.Kendo().TabStrip() 
    .Name("TabStrip_#=MonitoredFileKey#") 
    .SelectedIndex(0) 
    .Items(items => 
     { 
      items.Add().Text("File Results").Content(@<text> 
       @(Html.Kendo().Grid<MonitoredFileResults>() 
       .Name("MonitoredFileResultsGrid_#=MonitoredFileKey#") 
       .Columns(columns => 
       { 
       ........... 
       }) 
      ......... 
      .AutoBind(true) 
      .ToClientTemplate() 
      ) 
     </text> 
     ); 
    }) 
    .ToClientTemplate() 
)