如何为所有视图启用自定义html助手扩展方法?

时间:2014-09-18 15:25:35

标签: asp.net-mvc asp.net-mvc-4

我在自定义html辅助方法上遇到了问题。我添加了两个自定义的html辅助方法。第一种方法是MyTextBox,第二种方法是MySelectBox方法,它扩展到HtmlHelper类。以下代码工作正常。

C#:

namespace MyHtmlHelper
{
   public static class HtmlHelperClass
   {
      public static MvcHtmlString MyTextBox(string fieldName)
      {
        return new MvcHtmlString("<input type=\"text\" name=\"" + fieldName + "\"></input>");
      }
    }
}

    namespace MyHtmlHelper
    {
        public static class HtmlHelperExtension
        {
            public static MvcHtmlString MySelectBox(this HtmlHelper helper, string text)
            {
                return new MvcHtmlString("<select ><option>" + text + "</option></select>");
            }
        }
    }

查看:

@using MyHtmlHelper

<div>
    @MyHtmlHelper.HtmlHelperClass.MyTextBox("test")
    @Html.MySelectBox("Test")
</div>

我想在我的应用程序中为所有视图使用这个html帮助器方法。所以我从视图中删除了MyHtmlHelper命名空间,并在web.cong中添加如下

Web.config:

  <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
        <add namespace="MyHtmlHelper"/>
      </namespaces>
    </pages>

我的问题是: MyTextBox帮助方法工作正常 html扩展方法(MySelectBox)无法正常工作。有人请帮助我,什么我做错了或如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

视图文件夹中还有另一个Web配置。你必须使用它。

enter image description here