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

Asp.net mvc 在HtmlHelper扩展方法中访问HtmlHelper方法-ASP.NET MVC RC2,asp.net-mvc,extension-methods,html-helper,Asp.net Mvc,Extension Methods,Html Helper,我正在尝试在ASP.NET MVC RC2中构建一个HtmlHelper扩展。这段代码在Preview 5中运行良好,但在RC2中不再运行,我正在试图理解原因。代码如下: public static string EmptyDropDownList(this HtmlHelper htmlHelper, string name, object htmlAttributes) { return htmlHelper.DropDownList(name, new SelectList(new

我正在尝试在ASP.NET MVC RC2中构建一个HtmlHelper扩展。这段代码在Preview 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


有什么建议吗?

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

您可以在以下位置找到RC1(可能很快也会找到RC2源代码)。单击“源代码”选项卡,向下导航到MVC源代码树。

两个选项:

a。添加到带有“Using”的页面,从而带有razor视图页面(mvc 3和mvc 4) e、 g

b。添加到内部web.config名称空间部分 e、 g

    <add namespace="UrWeb.Helpers"/>

对于MVC3,使用System.Web.Mvc;我用于扩展Html.laborsystem.Web.Mvc.Html方法的名称空间是否已经存在于内部Web.config文件中?在修改帮助程序时,仅使用using System.Web.Mvc,在中使用的名称空间是否真的是零意义;并使用扩展方法将web.config设置为“感知”您的名称空间,因此请参见下面的答案。
    <add namespace="UrWeb.Helpers"/>