【问题标题】:MVC 5 Helper errorMVC 5 助手错误
【发布时间】:2016-10-26 18:52:16
【问题描述】:

我有这个很短的自定义助手

using System.Web.Mvc;

namespace Colibri.HtmlHelpers
{
    public static class CustomHelper
    {
        public static MvcHtmlString SearchBar(this HtmlHelper helper, string type)
        {
            return new MvcHtmlString("<input type=\"text\" placeholder =\"Recherche...\" id=\"" + type + "-Search\" class=\"Search-Input\"/>");
        }
    }
}

在 Razor Web.config 中,我在适当的部分添加了命名空间:

<add namespace="Colibri.HtmlHelpers" />

我只想用这段代码从视图中调用它:

@Html.SearchBar("Article")

这里我得到这个错误:

错误 CS0121 调用在以下方法或属性之间不明确:“Colibri.HtmlHelpers.CustomHelper.SearchBar(System.Web.Mvc.HtmlHelper, string)”和“Colibri.HtmlHelpers.CustomHelper.SearchBar(System.Web. Mvc.HtmlHelper, 字符串)'

如果我不在 Web.config 中添加命名空间,它会说:

错误 CS1061“HtmlHelper”不包含“SearchBar”的定义,并且找不到接受“HtmlHelper”类型的第一个参数的扩展方法“SearchBar”(您是否缺少 using 指令或程序集引用?)

感谢您的帮助。

【问题讨论】:

  • 不,这与不同的命名空间无关——只是你在两个地方声明了相同的方法签名。尝试在整个项目中搜索SearchBar方法并检查。
  • CS0121 通常出现在项目中存在两个不同版本的程序集、类或方法时。如果您认为命名冲突是问题的根源,请使用完整的命名空间或更改方法的名称。
  • 我已经检查过了,假设我忘记了很久以前我做过同名的事情,但没有。确实是同一个参考。当我调用该方法时,它会向我显示两次相同的签名。很奇怪。
  • 我试过全名; II得到这个错误:错误CS0433类型'Julien'存在于'Colibri,Version = 1.0.0.0,Culture = Neutral,PublicKeyToken = null'和'App_Code.vmsvzsyo,Version = 0.0.0.0,Culture = Neutral,PublicKeyToken = null' Colibri

标签: c# asp.net-mvc html-helper helper asp.net-mvc-5


【解决方案1】:

感谢大家的帮助。

我发现了问题:我刚刚将 .cs 文件从 App_Code 目录移动到另一个目录。

现在可以正常使用了。

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 2015-10-02
    • 1970-01-01
    • 2016-12-06
    • 2017-02-25
    相关资源
    最近更新 更多