包含HTML的帮助器中的Razor语法

时间:2015-03-30 09:00:57

标签: asp.net-mvc vb.net razor kendo-ui

我正在使用Kendo tabstrip帮助程序,并尝试用HTML描述内容而不是指向单独的vbHTML文件:

 @(Html.Kendo().TabStrip() _
.Name("tab2") _
.Items(Function(tabstrip) tabstrip.Add().Text("Project") _
.Selected(True) _
.Content(Sub() @(<div>
                     <table id="SummaryDimPanel" class="table slim">
                           ...table contents...
                     </table>
               </div>)
         End Sub)))

(使用建议here)的语法。

然而,这会产生错误:

  

重载解析失败,因为没有可访问的“内容”   用这些论点来称呼。

我确信这只是因为我的剃刀知识存在差距,但我很难看到下一步。

2 个答案:

答案 0 :(得分:0)

我的回答是C#,但是剑道控件是相同的:

@(Html.Kendo().Window().Name("MoveItem")
.Title("Move Item")
.Visible(false)
.Modal(true)
.Draggable(false)
.Width(900)
.Content(@<text>
   <div>
     <div class="box-head">
           <h2>Select container where item should be moved to</h2>
     </div>
     <div class="box-content" style="font-size: 8pt">
        @(Html.Kendo().Grid<Container>()
          .Name("CGrid_MoveItem")                                      
          .Columns(columns =>
          {
              columns.Bound(c => c.Barcode).Width(100);
              columns.Bound(c => c.NumberofItems).Title("Count").Width(70);
          })          
          .Selectable(selectable => selectable.Mode(GridSelectionMode.Single))                  
          .DataSource(dataSource => dataSource
              .Ajax()
              .Model(model =>
                {
                    model.Id(a => a.Id);
                    model.Field(a => a.Barcode);    
                })                
              .Read(read => read.Action("Move_Read", "CoAdmin"))
            )
        )
        </div>
    </div>
</text>)
)

答案 1 :(得分:0)

与Telerik支持对话后,答案变得明显。我使用的@()语法在vb.net中不起作用,而@Code....End Code应与sub() @<text> .... </text> End Sub结合使用以封装HTML:

@code
    Html.Kendo().TabStrip() _
    .Name("tab2") _
    .Items(Function(tabstrip) tabstrip.Add().Text("Project") _
    .Selected(True).Content(Sub()@<text>
        <table id="SummaryDimPanel" class="table slim">
              ....table contents...
        </table>
    </text> End Sub)).Render()
End code

(这个特殊的Kendo助手需要添加.Render方法来实际将HTML推送到浏览器。)

和Voila!