行内标记块不能嵌套。行内标记的只有一个级别是允许的。 MVC RAZOR [英] Inline markup blocks cannot be nested. Only one level of inline markup is allowed. MVC RAZOR

查看:217
本文介绍了行内标记块不能嵌套。行内标记的只有一个级别是允许的。 MVC RAZOR的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

里面Telerik的网格我一一模态窗口。但我需要渲染的图像在我的网格,以便按照我的理解,我不能使用@两次。下面是有关此问题的链接

有人可以帮助我请。

我的code

  @ {Html.Telerik()。窗口()
    。名称(图像)
    .title伪(选择图像)
    .Content(@<文字和GT;@(Html.Telerik()。组合框()
            。名称(AjaxComboBox66)
            .AutoFill(真)
            .SelectedIndex(0)
            .BindTo(新的SelectList(Model.PhotoFolders,ID,姓名))
            .Filterable(过滤=> filtering.FilterMode(AutoCompleteFilterMode.StartsWith))
            .HighlightFirstMatch(真)
            .ClientEvents(事件=>事件
                .OnChange(的onChange)
            )
      )      @(Html.Telerik()网格和LT; AjaxImages>()
    。名称(网格)
    .DataKeys(键=> keys.Add(C => c.ID))
  .Columns(列=>
  {
      columns.Template(
          @<文字和GT;
               < IMG src='@item.Url/>
//这是我的错误。我需要的辅助函数
           < /文字和GT;).title伪(图片);  })                              .DataBinding(数据绑定= GT; dataBinding.Ajax()选择(GetImages,UserProducts)。)                      .Scrollable(SCROLLING => scrolling.Enabled(真))
                      .Sortable(排序= GT; sorting.Enabled(真))
                          .Pageable(分页=> paging.Enabled(真).PageSize(20)。总(100).Style(GridPagerStyles.Next previousAndNumeric))
                      .Filterable(过滤=> filtering.Enabled(真))
                      .Groupable(分组=> grouping.Enabled(假))
                      .EnableCustomBinding(真)                      .Footer(真))
              < /文本>)
    .WIDTH(400)
    .Draggable(真)
    .Modal(真)
    。可见(假)
    .Render();
}

我GetImages函数返回我的JSON与ID和URL。


解决方案

在这种情况下可以使用MVC剃刀辅助函数。
创建网格控件定义的辅助函数,在这种情况下 RenderGrid()

  @helper RenderGrid()
{
     @(Html.Telerik()网格和LT; AjaxImages>()
     。名称(网格)
     .DataKeys(键=> keys.Add(C => c.ID))
     .Columns(列=>
     {
         columns.Template(
         @<文字和GT;
             < IMG src='@item.Url/>
         < /文字和GT;
         ).title伪(图片);
     })
     .DataBinding(数据绑定= GT; dataBinding.Ajax()选择(GetImages,UserProducts)。)
}

调用窗口的内容定义里面的辅助函数。如果需要,辅助函数可以被多次调用。

  @ {Html.Telerik()。窗口()
      。名称(图像)
      .title伪(选择图像)
      。内容(
       @<文字和GT;
          @RenderGrid()
       < /文本>)
      .WIDTH(400)
      .Draggable(真)
      .Modal(真)
      。可见(假)
      .Render();
}

I one one modal window with telerik grid inside. But i need to render images in my grid so as i understand i cant use @ twice. Here is blog post about this issue Link

Can someone assist me please.

My Code

@{  Html.Telerik().Window()
    .Name("images")
    .Title("Select an Image")
    .Content(@<text>

@(Html.Telerik().ComboBox()
            .Name("AjaxComboBox66")
            .AutoFill(true)
            .SelectedIndex(0)
            .BindTo(new SelectList(Model.PhotoFolders, "ID", "Name"))
            .Filterable(filtering => filtering.FilterMode(AutoCompleteFilterMode.StartsWith))
            .HighlightFirstMatch(true)
            .ClientEvents(events => events
                .OnChange("onChange")
            )
      )

      @(Html.Telerik().Grid<AjaxImages>()
    .Name("Grid")
    .DataKeys(keys => keys.Add(c => c.ID))
  .Columns(columns =>
  {
      columns.Template(
          @<text>
               <img src='@item.Url' /> 
//Here is my error. I need helper function
           </text>

).Title("Picture");

  })

                              .DataBinding(dataBinding => dataBinding.Ajax().Select("GetImages", "UserProducts"))

                      .Scrollable(scrolling => scrolling.Enabled(true))
                      .Sortable(sorting => sorting.Enabled(true))
                          .Pageable(paging => paging.Enabled(true).PageSize(20).Total(100).Style(GridPagerStyles.NextPreviousAndNumeric))
                      .Filterable(filtering => filtering.Enabled(true))
                      .Groupable(grouping => grouping.Enabled(false))
                      .EnableCustomBinding(true)

                      .Footer(true))
              </text>)
    .Width(400)
    .Draggable(true)
    .Modal(true)
    .Visible(false)


    .Render();
} 

My GetImages function return me json with "ID" and "URL".

解决方案

In these situations the MVC Razor helper function can be used. Create the helper function with the grid control definition, in this case RenderGrid().

@helper RenderGrid()
{
     @(Html.Telerik().Grid<AjaxImages>()
     .Name("Grid")
     .DataKeys(keys => keys.Add(c => c.ID))
     .Columns(columns =>
     {
         columns.Template(
         @<text>
             <img src='@item.Url' /> 
         </text>
         ).Title("Picture");
     })
     .DataBinding(dataBinding => dataBinding.Ajax().Select("GetImages", "UserProducts"))
}

Call the helper function inside the window's content definition. The helper functions can be called multiple times if needed.

    @{Html.Telerik().Window()
      .Name("images")
      .Title("Select an Image")
      .Content(
       @<text>
          @RenderGrid()
       </text>)
      .Width(400)
      .Draggable(true)
      .Modal(true)
      .Visible(false)
      .Render();
} 

这篇关于行内标记块不能嵌套。行内标记的只有一个级别是允许的。 MVC RAZOR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆