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

Key*_*dly 10 javascript asp.net-mvc razor asp.net-mvc-4 kendo-ui

您好我收到错误:

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

使用带有Razor View和MVC4的Kendo UI标签和MultiSelectBoxes

我已经尝试过实现helper类,但我仍然遇到错误

这是我的代码,我错过了一步吗?我把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);
                                          })

                                    )
}
Run Code Online (Sandbox Code Playgroud)

Key*_*dly 14

我想到了.

我必须把助手联系起来.

因此,每个多选项的一个辅助类.

关注此:http://www.aspnetwiki.com/telerik-mvc : nested- container-controls-and-razor- helper

然后如果你想在一个标签中有多个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);
                   })

          )
    }
Run Code Online (Sandbox Code Playgroud)

然后在TabStrip"内容"中调用帮助器,如下所示:

.Items(tabstrip =>
          {
              tabstrip.Add().Text("One")

                  .Content(@<text>
                                                       @RenderMultiSelectFirstBox() 
                                                       @RenderMultiSelectSecondBox()</text>);
Run Code Online (Sandbox Code Playgroud)