2013-03-04 3 views
0

Привет Я пытаюсь создать HTML-помощник methos для и проект MVC asp.net, но я должен делать что-то неправильно, потому что, когда я пытаюсь вызвать метод, я получаю эту ошибку:Создание методов расширения приводит к ошибке

Error 1 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'LabelSomething' and the best extension method overload 'TestProject.Modules.Pager.LabelSomething(System.Web.WebPages.Html.HtmlHelper, string, string)' has some invalid arguments d:\Training\Practis.Internship.Workspace\Alex.Nistor\ADO.NET\TestProject\Views\Home\Index.cshtml 35 6 ADO.NET

Error 2 Instance argument: cannot convert from 'System.Web.Mvc.HtmlHelper' to 'System.Web.WebPages.Html.HtmlHelper' d:\Training\Practis.Internship.Workspace\Alex.Nistor\ADO.NET\TestProject\Views\Home\Index.cshtml 35 6 ADO.NET

Это мой код:

public static class Pager 
{ 
    public static string LabelSomething(this HtmlHelper helper, string target , string text){ 
     return string.Format("<label for='{0}'>{1}</label>", target, text); 
    } 
} 

Это, как я судимое назвать:

@Html.LabelSomething("fsaf" , "ddada") 

Что я DOI Неправильно?

+0

, в котором пространство имен вашего класса? –

+0

, если пространство имен находится снаружи, вы должны импортировать свое пространство имен в папке web.config внутри представлений –

ответ

3

Вы не указывая HtmlHelper от MVC, а в настоящее время она указывает на WebPages.Html Измените метод расширения как:

public static class Pager 
{ 
    public static string LabelSomething(this System.Web.Mvc.HtmlHelper helper, string target , string text){ 
     return string.Format("<label for='{0}'>{1}</label>", target, text); 
    } 
} 
1

И вы можете положить ваши помощники в App_Code работает, но имеет определенные ограничения, которые влияют на определенный MVC сценарии (например: нет доступа к стандартным MVC Html. helpers)

Смежные вопросы