Question

J'espère que quelqu'un pourra m'aider. J'ai essayé d'écrire un assistant HTML personnalisé pour mon application MVC. Tout d’abord, j’ai essayé avec un test, qui écrit uniquement une balise

pour le paramètre spécifié. Le problème est que cela ne fonctionne que si j'importe explicitement l'espace de nom. J'ai beaucoup lu et, comme je l'ai lu, cette méthode devrait apparaître sans l'espace de nom d'importation comme ceci:

<%=Html.Prueba("This is a paragraph") %>

Mais cette méthode, Prueba, n'apparaît pas dans le VS Intellisense.

Ma classe est la suivante:

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);
        }
    }

}

Merci d'avance!

Était-ce utile?

La solution

L'espace de noms doit être déclaré / importé quelque part. Vous pouvez le faire soit:

  • dans la page elle-même
  • maquette ou
  • dans le fichier web.config

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

Utilisez la directive <@import...> pour les deux premiers et <namespace> l'élément de configuration pour le dernier.

Autres conseils

Vous pouvez ajouter l'espace de nom à web.config sans avoir à vous en préoccuper plus tard.

Dans votre Web.config, vous devriez voir quelque chose comme ceci:

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

Ajoutez simplement une ligne avec votre espace de noms.

Si vous ne voulez pas que les assistants soient importés globalement, chaque répertoire peut avoir son propre web.config. Sauf spécification contraire, ces & Quot; sous & Quot; web.configs héritera des paramètres de web.configs supérieurs. Si vous suivez cette voie, soyez prévenu, certains paramètres ne peuvent être définis qu'au niveau de l'application. Cela peut devenir vite déroutant.

Pour une raison quelconque, dans visual studio 2013, vous devez redémarrer vs pour que les modifications apportées à web.config soient appliquées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top