如何访问Html.HtmlHelper的命名空间?

时间:2014-05-16 17:14:12

标签: asp.net-mvc-3

我正在尝试创建一个帮助器类,并通过向web.config添加命名空间来启动。

 <system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace=" MyApplication"/>
         </namespaces>
</pages>

然后我创建了一个名为Helper的文件夹,并试图创建一个这样的方法:

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.WebPages.Html;


 namespace MyApplication.Helpers
 {
     public static class ViewBagHelpers
     {

    public static dynamic GetPageViewBag(this HtmlHelper html)
    {
        if (html == null || html.ViewContext == null) //this means that the page is root or parial view
        {
            return html.ViewBag;
        }

        ControllerBase controller = html.ViewContext.Controller;

        while (controller.ControllerContext.IsChildAction)  //traverse hierachy to get root controller
        {
            controller = controller.ControllerContext.ParentActionViewContext.Controller;
        }

        return controller.ViewBag;
    }



}

}

然后我收到System.Web.WebPages.Html.HtmlHelper不包含html.ViewContext,html.ViewBag定义的错误消息。

我搜索过类似的问题和解决方案,但对我来说没什么用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我相信这个

using System.Web.WebPages.Html;

你真的想要这个:

using System.Web.Mvc;