Asp.net-Mvc-3

內聯標記塊不能嵌套。只允許一級內聯標記。MVC 剃須刀

  • August 3, 2016

我有一個帶有 Telerik 網格的模態視窗。但我需要在我的網格中渲染圖像,所以我知道我不能使用 @ 兩次。這是關於此問題的部落格文章連結

有人可以幫助我嗎?

我的程式碼

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

我的 GetImages 函式返回帶有“ID”和“URL”的 json。

在這些情況下,可以使用 MVC Razor 輔助函式。使用網格控制項定義創建輔助函式,在本例中為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"))
}

在視窗的內容定義中呼叫輔助函式。如果需要,可以多次呼叫輔助函式。

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

引用自:https://stackoverflow.com/questions/10684025