2013-03-04 113 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)