在HtmlHelper扩展方法中访问HtmlHelper方法 - ASP.NET MVC RC2

时间:2009-03-16 21:28:34

标签: asp.net-mvc extension-methods html-helper

我正在尝试在ASP.NET MVC RC2中构建一个HtmlHelper扩展。这段代码在预览版5中运行良好,但在RC2中不再有用,我试图理解为什么。这是代码:

public static string EmptyDropDownList(this HtmlHelper htmlHelper, string name, object htmlAttributes)
{
    return htmlHelper.DropDownList(name, new SelectList(new string[0]), htmlAttributes);
}

问题是我无法从扩展方法中访问htmlHelper上的所有方法。因此,找不到htmlHelper.DropDownList。

有什么建议吗?

2 个答案:

答案 0 :(得分:11)

您需要包含System.Web.Mvc.Html命名空间,因为大多数HtmlHelper方法实际上都是在该命名空间中的类中定义的扩展。

您可以在www.codeplex.com/aspnet找到RC1(也可能是RC2源代码)。单击源代码选项卡,然后向下导航到MVC源代码树。

答案 1 :(得分:0)

两种选择:

一个。添加到“使用”页面,因此使用剃刀视图页面(mvc 3和mvc 4)    例如

    @using UrWeb.Helpers

OR

湾添加到内部web.config名称空间部分    例如

    <add namespace="UrWeb.Helpers"/>