MVC vue ne peuvent pas trouver ma méthode d'extension

J'ai créé une méthode d'extension:

namespace MyComp.Web.MVC.Html
{
    public static class LinkExtensions
    {
        public static MvcHtmlString ActionImageLink(this HtmlHelper htmlHelper, string linkText, string imageSource, string actionName)
        {
            ...
        }
    }
}

J'ai fait référence à l'assemblée à partir de mon application mvc, et j'ai essayé d'importer l'espace de noms de mon point de vue:

<%@ Import Namespace="MyComp.Web.Mvc.Html" %>

et j'ai également ajouté au fichier de configuration web:

<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>

À Mon avis, si j'essaie d'accéder à Html.ActionImageLink je reçois un message d'erreur indiquant que le Système.Web.Mvc.HtmlHelper ne contient pas une définition pour ActionImageLink acceptant un premier argument de type de Système.Web.Mvc.HtmlHelper. Je ne vois pas du tout de la ActionLink les méthodes d'extension pour le Système.Web.Mvc.HtmlHelper, uniquement pour le Système.Web.Mvc.HtmlHelper, alors, comment fonctionne le .net framework, et pas pour moi?

C'est bizarre. On dirait que vous avez tout fait correctement. Je suppose que l'erreur s'affiche lorsque vous exécutez le site web, et pas seulement dans VS code de la vue?
pouvez-vous coller votre code de vue?
non si je compile, VS me montre les erreurs avant même que je exécuter l'application.
Pourriez-vous essayer de désactiver MvcBuildView par l'édition de la mvc du projet .csproj fichier, puis exécuter le code. Je suis perplexe à ce depuis, il semble que vous avez tout fait correctement.
Ce que je veux obtenir au est parfois Visual Studio va vous dire qu'il ne peut pas trouver une certaine méthode (spécialement dans les vues) dans certains noms parce qu'il n'a pas encore reconnu le nouvel espace de noms. Parfois, la reconstruction du projet de correctifs. Aussi, êtes-vous sûr que le web.config vous avez ajouté à a été la principale de l'application web.config pas le views web.config?

OriginalL'auteur Jeremy | 2010-01-21

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *