【发布时间】: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