我创建了一个扩展方法:
namespace MyComp.Web.MVC.Html
{
public static class LinkExtensions
{
public static MvcHtmlString ActionImageLink(this HtmlHelper htmlHelper, string linkText, string imageSource, string actionName)
{
...
}
}
}
我已经从我的 mvc 应用程序引用了程序集,并且尝试在我的 View 中导入命名空间:
<%@ Import Namespace="MyComp.Web.Mvc.Html" %>
我还将它添加到网络配置文件中:
<pages>
<controls>
...
</controls>
<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="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="MyComp.Web.Mvc.Html"/>
</namespaces>
</pages>
在我看来,如果我尝试访问 Html.ActionImageLink,则会收到一条错误消息,指出 System.Web.Mvc.HtmlHelper 不包含接受 System.Web.Mvc.HtmlHelper 第一个参数类型的 ActionImageLink 的定义。我没有看到 System.Web.Mvc.HtmlHelper 的任何 ActionLink 扩展方法,仅适用于 System.Web.Mvc.HtmlHelper,那么它如何适用于 .net 框架,而不适用于我?
最佳答案
请注意声明和导入时 namespace 大小写的差异。
namespace MyComp.Web.MVC.Html
{
}
<%@ Import Namespace="MyComp.Web.Mvc.Html" %>
<add namespace="MyComp.Web.Mvc.Html"/>
命名空间区分大小写!
关于asp.net-mvc - MVC View 找不到我的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111145/