2013-03-04 114 views
0

嗨我想創建一個HTML幫助方法和asp.net MVC項目,但我必須做錯了什麼,因爲當我嘗試調用該方法時,我得到此錯誤:創建擴展方法導致錯誤

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

這是我tryed調用它:

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

我是什麼DOI恩錯了嗎?

+0

你的類名字空間在哪裏? – 2013-03-04 11:45:16

+0

如果命名空間在外面,則應該在您的web.config視圖文件夾內導入您的命名空間 – 2013-03-04 11:45:50

回答

3

你沒有指定MVC中的HtmlHelper,取而代之的則是當前指向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)