Asp.net-Mvc
MVC 視圖找不到我的擴展方法
我創建了一個擴展方法:
namespace MyComp.Web.MVC.Html { public static class LinkExtensions { public static MvcHtmlString ActionImageLink(this HtmlHelper htmlHelper, string linkText, string imageSource, string actionName) { ... } } }我已經從我的 mvc 應用程序中引用了程序集,並且我嘗試在我的視圖中導入命名空間:
<%@ 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 不包含 ActionImageLink 的定義,它接受 System.Web.Mvc.HtmlHelper 的第一個參數類型。我沒有看到 System.Web.Mvc.HtmlHelper 的任何 ActionLink 擴展方法,僅適用於 System.Web.Mvc.HtmlHelper,那麼它如何適用於 .net 框架,而不適用於我?
請注意聲明和導入時命名空間大小寫的區別。
namespace MyComp.Web.MVC.Html { } <%@ Import Namespace="MyComp.Web.Mvc.Html" %> <add namespace="MyComp.Web.Mvc.Html"/>命名空間區分大小寫!
您必須在web.config中添加命名空間,但在Views 文件夾中