6
votes

ASP.NET MVC HTML HTML ne fonctionne pas

J'espère que quelqu'un peut m'aider. J'ai essayé d'écrire une aide HTML personnalisée pour mon application MVC. Tout d'abord, j'ai essayé avec un test unique, ce qui n'écrit qu'une balise

pour le param. Les choses sont, cela ne travaille pas à moins d'importer explicitement l'espace de noms. J'ai lu beaucoup et comme je l'ai lu, cette méthode devrait apparaître sans l'espace de nom d'importation comme celui-ci: p> xxx pré>

mais cette méthode, prueba, ne s'affiche pas dans le Vs IntelliSense. P>

Ma classe est la suivante: P>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace EasyGoCostaRica.Helpers
{
    public static class ViewsHelpers
    {
        //This method is just for testing. Is not working :(
        public static string Prueba(this HtmlHelper helper, string param1)
        {
            return string.Format("<p>{0}</p>", param1);
        }
    }

}


4 commentaires

Corrigez votre code dans le premier bloc de code. Vous utilisez ampersand au lieu de pour cent


Ouais. C'est l'AMEPRSAN ici: <& = HTML.PRUEBA ("Ceci est un paragraphe")%>


Lol ce n'est pas le problème, j'écris ici à la main, pas la copie-coller, le problème était l'espace de noms, tout simplement ajouté au web.config et à Voilà!


Je n'ai pas souligné votre ampersand parce que je pensais que cela ne fonctionne pas à cause de cela, mais parce qu'il est plus facile de lire le code formaté, quand il est correctement écrit. Arrive tout le temps. :)


3 Réponses :


13
votes

Espace de noms doit être déclaré ou importé quelque part. Vous pouvez le faire soit:

  • dans la page elle-même
  • Page maître ou
  • Inside Web.Config Fichier

    Si vous voulez quelque chose global il est préférable de configurer votre espace de noms dans web.config.

    Utiliser <@ Import ...> directive pour les deux premiers et élément de configuration pour la dernière.


1 commentaires

Merci a tous! Je n'ai pas considéré le web.config plus tôt ... merci!



6
votes

Vous pouvez ajouter l'espace de noms au web.config, puis vous n'aurez plus à vous en soucier à ce sujet plus tard.

Dans votre web.config, vous devriez voir quelque chose comme ceci: P>

<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"/>
</namespaces>


1 commentaires

J'ai ajouté l'espace de noms au fichier web.config dans le dossier Vues. Ma nouvelle assistante fonctionne dans l'un des fichiers de visualisation à part le fichier _layout.cshtml. Pourquoi cela serait-il?



7
votes

Pour une raison quelconque de Visual Studio 2013, vous devez redémarrer VS afin de modifier le web.config à appliquer.


4 commentaires

J'ai trouvé la même chose dans vs 2012! Et même alors c'est toucher et aller.


Eu ce problème dans vs 2015 aussi.


Même chose dans vs 2015 pour moi, c'est affreux.


Vs 2019 a apparemment ce problème aussi. Redémarrez nécessaire avant que cela enregistre le changement de web.config