剑道小部件在 Razor 中有两层深,内联标记块不能嵌套 [英] Kendo widgets two level deep in Razor, inline markup blocks cannot be nested
问题描述
我正在尝试实现两级深度的 Kendo 小部件,但 Razor 引擎不断抱怨:不能嵌套内联标记块 (@Content).只允许一级内联标记."
有没有办法让 Razor 引擎渲染两级深度的助手?
我的代码示例:
@(Html.Kendo().TabStrip().Name("tabStrip").Items(tabstrip =>{tabstrip.Add().Text("Strip1").选择(真).Content(@<文本>@RenderPanelBar()</text>);tabstrip.Add().Text("Strip2").Content(@<文本></text>);}))@helper RenderPanelBar(){@(Html.Kendo().PanelBar().Name("面板栏").ExpandMode(PanelBarExpandMode.Single).Items(面板栏 =>{panelbar.Add().Text("panel1").扩展(真).Content(@<div>@(Html.Kendo().Grid().Name("GroupGrid").Columns(columns =>{column.Bound(c => c.GroupID).Hidden();column.Bound(c => c.Name);列.命令(命令=> {命令.编辑();命令.销毁();});}).ToolBar(工具栏 =>{工具栏.创建();工具栏.模板(@<文本>@RenderDropDown()//<-- 这里发生错误</text>);}).Editable(editable => editable.Mode(GridEditMode.InLine)).Scrollable(s => s.Enabled(false)).Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single)).DataSource(dataSource => 数据源.Ajax().Read(read => read.Action("Group_Grid_Read", "Home")).Events(events => events.Error("error_handler")).Model(model => model.Id(p => p.GroupID)).Create(update => update.Action("EditingInline_Create", "Home")).Update(update => update.Action("EditingInline_Update", "Home")).Destroy(update => update.Action("EditingInline_Destroy", "Home"))).Events(e => e.Change("onGroupGridChange").Save("GroupGrid_Save")))
);panelbar.Add().Text("panel2").Content(@
);}))}@helper RenderDropDown(){<div class="工具栏"><label class="category-label" for="category">按类别显示产品:</label>@(Html.Kendo().DropDownList().Name("类别").OptionLabel("全部").DataTextField("类别名称").DataValueField("CategoryID").自动绑定(假).Events(e => e.Change("categoriesChange")).DataSource(ds =>{ds.Read("ToolbarTemplate_Categories", "Grid");}))
}
我认为您可能需要在任何级别使用 razor helper.在您的情况下,您可能需要将网格放在另一个 RenderGrid()
中,如下所示:
@(Html.Kendo().TabStrip().Name("tabStrip").Items(tabstrip =>{tabstrip.Add().Text("Strip1").选择(真).Content(@<文本>@RenderPanelBar()</text>);tabstrip.Add().Text("Strip2").Content(@<文本></text>);}))@helper RenderPanelBar(){@(Html.Kendo().PanelBar().Name("面板栏").ExpandMode(PanelBarExpandMode.Single).Items(面板栏 =>{panelbar.Add().Text("panel1").扩展(真).Content(@<文本>@RenderGrid());panelbar.Add().Text("panel2").Content(@//缩写的东西);}))}@helper RenderGrid(){@(Html.Kendo().Grid().Name("GroupGrid").Columns(columns =>{column.Bound(c => c.GroupID).Hidden();column.Bound(c => c.Name);列.命令(命令=>{命令.编辑();命令.销毁();});}).ToolBar(工具栏 =>{工具栏.创建();工具栏.模板(@<文本>@RenderDropDown()</text>);}).Editable(editable => editable.Mode(GridEditMode.InLine)).Scrollable(s => s.Enabled(false)).Selectable(s => s.Enabled(true).Mode(GridSelectionMode.Single)).DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("Group_Grid_Read", "Home")).Events(events => events.Error("error_handler")).Model(model => model.Id(p => p.GroupID)).Create(update => update.Action("EditingInline_Create", "Home")).Update(update => update.Action("EditingInline_Update", "Home")).Destroy(update => update.Action("EditingInline_Destroy", "Home"))).Events(e => e.Change("onGroupGridChange").Save("GroupGrid_Save")))}@helper RenderDropDown(){<div class="工具栏"><label class="category-label" for="category">按类别显示产品:</label>@(Html.Kendo().DropDownList().Name("类别").OptionLabel("全部").DataTextField("类别名称").DataValueField("CategoryID").自动绑定(假).Events(e => e.Change("categoriesChange")).DataSource(ds => { ds.Read("ToolbarTemplate_Categories", "Grid"); }))