内联标记块(@<p>内容</p>)不能嵌套。只允许一级内联标记。

11

你好,我遇到了以下错误:

Inline markup blocks (@<p>Content</p>) cannot be nested.  Only one level of inline markup is allowed.

使用Kendo UI选项卡和多选框(MultiSelectBoxes)与Razor视图和MVC4

我尝试实现帮助器类(helper class),但仍然出现错误。

这是我的代码,我错过了什么步骤吗?我将3个multiselects移到外面,并使用helper进行调用!

@(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个回答

14
我明白了。
我必须链接这些辅助类。
因此,每个多选框需要一个帮助器类。
按照以下步骤进行操作: http://www.aspnetwiki.com/telerik-mvc:nested-container-controls-and-razor-helper 然后,如果您想在一个选项卡中使用多个MultiSelects,则需要为每个MultiSelect都有一个帮助器,如下所示:
这是帮助程序,请将其复制到第二个、第三个和第四个并更改名称等...
@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>);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接