创建扩展方法导致错误
嗨我想创建一个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恩错了吗?
你没有指定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);
}
}
而且你可以把你的助手在App_Code文件工作,但具有一定的局限性影响某些MVC场景(例如:不能访问标准的MVC Html.helpers)
你的类名字空间在哪里? – 2013-03-04 11:45:16
如果命名空间在外面,则应该在您的web.config视图文件夹内导入您的命名空间 – 2013-03-04 11:45:50