C# 在razor视图中缺少@using

C# 在razor视图中缺少@using,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,在my_Layout.cshtml中,我有以下html代码 @using PreVenta <li class="@Html.ActivePage("Home")"> <a href="@Url.Action("Index", "Home")"> <i class="fa fa-home"></i> <span class="title">Home</span> <

在my_Layout.cshtml中,我有以下html代码

@using PreVenta
<li class="@Html.ActivePage("Home")">
    <a href="@Url.Action("Index", "Home")">
        <i class="fa fa-home"></i>
        <span class="title">Home</span>
        <span class="@Html.SelectedPage("Home")" /> 
    </a>
</li>
主要问题是,当我尝试启动mi webapp时,我遇到了此错误 编译器错误消息:CS1061:“System.Web.Mvc.HtmlHelper”不包含“ActivePage”的定义找不到接受“System.Web”类型的第一个参数的扩展方法“ActivePage”。Mvc.HtmlHelper'(是否缺少using指令或程序集引用?)


请一些人帮我,因为我很困惑。谢谢

您需要在要使用此帮助程序的视图中添加此命名空间


真奇怪。你能确保你的助手类是这样的吗

助手类

namespace PreVenta
{
    public static class HtmlHelpers
    {
        public static string ActivePage(this HtmlHelper helper, string controller)
        {
            //your code
        }
    }
}
现在您可以像下面这样调用helper方法

查看

@Html.ActivePage("Home")

我已经找到了解决问题的办法

当visual studio无法成功编译项目时,会出现此问题

为了修复此问题,我清理了项目,尝试删除dll并重新编译以发布或调试


坦克到所有人,坦克到VisualRollStudio):

@使用PreVenta意味着您正在添加名称空间。PreVenta是有效的命名空间吗?您应该显示您的命名空间声明。命名空间是命名空间PreVenta。助手文件在App_start folder中。你能显示完整的类吗?根据OP的说法,他试图在_布局中使用扩展方法。我已经找到了解决问题的方法。。。当visual studio无法成功编译项目时,会出现此问题。为了修复此问题,我清理了项目,尝试删除dll并重新编译以发布或调试。储罐至所有,储罐至VisualRollStudio):
namespace PreVenta
{
    public static class HtmlHelpers
    {
        public static string ActivePage(this HtmlHelper helper, string controller)
        {
            //your code
        }
    }
}
@Html.ActivePage("Home")