内联标记块 (@<p>Content</p>) 不能嵌套。只允许一级内联标记
Posted
技术标签:
【中文标题】内联标记块 (@<p>Content</p>) 不能嵌套。只允许一级内联标记【英文标题】:Inline markup blocks (@<p>Content</p>) cannot be nested. Only one level of inline markup is allowed 【发布时间】:2013-11-23 22:27:42 【问题描述】:您好,我收到错误消息:
Inline markup blocks (@<p>Content</p>) cannot be nested. Only one level of inline markup is allowed.
在 Razor 视图和 MVC4 中使用 Kendo UI 选项卡和 MultiSelectBoxes
我已经尝试实现帮助类,但我仍然收到错误
这是我的代码,我错过了一步吗?我将 3 个多选移出并使用助手调用它们!
@(html.Kendo().TabStrip()
.Name("tabstrip")
.Items(tabstrip =>
tabstrip.Add().Text("One")
.Content(@<div>
@RenderSelect()
</div>;);
tabstrip.Add().Text("Two")
.Content("Two");
tabstrip.Add().Text("Three")
.Content("Three");
)
.SelectedIndex(0)
)
@helper RenderSelect()
<h2>MyList</h2>
<label>One</label>
@(Html.Kendo()
.MultiSelect()
.Name("One")
.AutoBind(true)
.Placeholder("Select Clients...")
.DataTextField("hname")
.DataSource(source =>
source.Read(read =>
read.Action("Client", "Dist");
)
.ServerFiltering(true);
)
)
<label>Two</label>
@(Html.Kendo()
.MultiSelect()
.Name("Two")
.AutoBind(true)
.DataTextField("gname")
.Placeholder("Select Recipients...")
.DataSource(source =>
source.Read(read =>
read.Action("Client", "Dist");
)
.ServerFiltering(true);
)
)
<label>Three</label>
@(Html.Kendo()
.MultiSelect()
.Name("Three")
.AutoBind(true)
.DataTextField("id")
.Placeholder("Select CLL...")
.DataSource(source =>
source.Read(read =>
read.Action("Codes", "Dist");
)
.ServerFiltering(true);
)
)
【问题讨论】:
【参考方案1】:我想通了。
我必须链接助手。
所以每个多选都有一个帮助类。
按照这个: http://www.aspnetwiki.com/telerik-mvc:nested-container-controls-and-razor-helper
然后,如果您想在一个选项卡中进行多个多选,您将需要为每个多选提供一个帮助程序,如下所示:
这里是帮手,把这个复制到第二个第三个和第四个然后改名字等等...
@helper RenderMultiFirstBox()
@(Html.Kendo()
.MultiSelect()
.Name("First")
.AutoBind(true)
.Placeholder("Select First...")
.DataTextField("name")
.DataSource(source =>
source.Read(read =>
read.Action("Index", "Something");
)
.ServerFiltering(true);
)
)
然后像这样调用 TabStrip 'Content' 中的助手:
.Items(tabstrip =>
tabstrip.Add().Text("One")
.Content(@<text>
@RenderMultiSelectFirstBox()
@RenderMultiSelectSecondBox()</text>);
【讨论】:
以上是关于内联标记块 (@<p>Content</p>) 不能嵌套。只允许一级内联标记的主要内容,如果未能解决你的问题,请参考以下文章