【问题标题】:MVC3 Helper Not Working, Not FoundMVC3 助手不工作,未找到
【发布时间】:2012-01-26 19:25:23
【问题描述】:

我在 /Helpers 下的主目录中创建了以下帮助程序:

HtmlHelpers.cs

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

namespace Website.Helpers
{
    public static class HtmlHelpers
    {
        public static MvcHtmlString ActiveActionLinkHelper(this HtmlHelper Html, string text, string action, string controller, string activeClass = "active", bool actionCheck = false)
        {
            if (Html.ViewContext.RouteData.GetRequiredString("controller") == controller)
            {
                if (actionCheck)
                {
                    if (Html.ViewContext.RouteData.GetRequiredString("action") == action)
                        return Html.ActionLink(text, action, controller, new { Class = activeClass });
                }
                else
                {
                    return Html.ActionLink(text, action, controller, new { Class = activeClass });
                }
            }

            return Html.ActionLink(text, action, controller);
        }
    }
}

我将命名空间添加到我的 Publishers Areas 文件夹中的 Views 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="Website.Helpers" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

我不断收到此消息: 编译器错误消息:CS1061:“System.Web.Mvc.HtmlHelper”不包含“ActiveActionLink”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“ActiveActionLink”(您是否缺少 using 指令或程序集引用?)

核心:@Html.ActiveActionLink("Dashboard", "Index", "Dashboard")

有谁知道我做错了什么?几乎没有关于如何或在何处存储 HTML 助手的教程。有人可以给我建议吗?

【问题讨论】:

    标签: asp.net asp.net-mvc-3 helpers


    【解决方案1】:

    Core: @Html.ActiveActionLink("Dashboard", "Index", "Dashboard") // 问题出在这里

    由于您的方法是 ActiveActionLinkHelper,因此您调用的方法不同。

    @Html.ActiveActionLinkHelper("Dashboard", "Index", "Dashboard") // try like this. 
    

    【讨论】:

      【解决方案2】:

      编译器是对的。你的方法被命名为ActiveActionLinkHelper。将其更改为ActiveActionLink,一切都会好起来的

      【讨论】:

        猜你喜欢
        • 2013-09-02
        • 1970-01-01
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多