Inline markup blocks cannot be nested. Only one level of inline markup is allowed. MVC RAZOR

自作多情 提交于 2019-12-01 03:22:21
Igorrious

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();
} 

In previous MVC @helper was used as a workaround for inability to nest @<text> tags. But in MVC CORE @helper is omitted. Read more here:

https://github.com/aspnet/Razor/issues/715

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!