我正在尝试创建一个帮助器类,并通过向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定义的错误消息。
我搜索过类似的问题和解决方案,但对我来说没什么用。我该如何解决这个问题?
答案 0 :(得分:0)
我相信这个
using System.Web.WebPages.Html;
你真的想要这个:
using System.Web.Mvc;