Реализовать расширение @html.myTelerikGrid

#asp.net-mvc-3 #html-helper #telerik-grid #telerik-mvc

#asp.net-mvc-3 #html-помощник #telerik-grid #telerik-mvc

Вопрос:

Я пытаюсь создать расширение HTML для отображения моей сетки telerik с общими настройками

Если я объявлю этот код в представлении, все будет в порядке.

 @imports Telerik.Web.Mvc

@imports Telerik.Web.Mvc.UI
 

@Code

Dim gridBuilder As Telerik.Web.Mvc.UI.Fluent.GridBuilder(Of TModel) =

Html.Telerik().Grid(Of TModel)().Name("myList")

@End Code
  

Но я переношу его в проект библиотеки классов для реализации расширения HTML

 Imports System.Web.Mvc

Imports Telerik.Web.Mvc

Imports Telerik.Web.Mvc.UI


Namespace Helpers

    Module HelperList

        <System.Runtime.CompilerServices.Extension()> _

        Public Sub myTelerikList(Of TModel As Class)(helper As HtmlHelper)

            Dim gridBuilder As Telerik.Web.Mvc.UI.Fluent.GridBuilder(Of TModel) = Html.Telerik().Grid(Of TModel)().Name("myList")


…

…

        End Sub
  

У меня такая ошибка

‘Html’ неоднозначен, импортирован из пространств имен или типов ‘Telerik.Web.Mvc.UI, System.Web.Mvc’.

Ответ №1:

Попробуйте использовать вспомогательный экземпляр, который вы расширяете:

 <System.Runtime.CompilerServices.Extension()> _
Public Sub myTelerikList(Of TModel As Class)(helper As HtmlHelper)
    Dim gridBuilder As Telerik.Web.Mvc.UI.Fluent.GridBuilder(Of TModel) = helper.Telerik().Grid(Of TModel)().Name("myList")
    ...
End Sub
  

Ответ №2:

Поскольку у вашего HtmlHelper экземпляра есть имя helper , вам нужно написать helper.Telerik() .