1 votes

Comment changer de moteur d'affichage à la volée dans une action de contrôleur ASP.Net MVC ?

Je veux écrire un moteur d'affichage personnalisé qui renvoie du texte personnalisé (comme délimité par des virgules). Quelqu'un sait-il comment modifier le moteur d'affichage à la volée pour gérer cela ?

1voto

Eduardo Campañó Points 4801

Je créerais un ActionResult personnalisé. J'utilise la fonction Json() pour retourner un JsonResult quand j'ai besoin de JSON comme réponse. J'utilise ce code pour remplir un arbre ExtJS en utilisant des données JSON.

    public JsonResult Folders(string node)
    {

        var relativePath = (node == "root") ? "" : node;
        var path = Path.Combine(BASE_PATH, relativePath);
        var folder = new DirectoryInfo(path);
        var subFolders = folder.GetDirectories();
        var folders = new List<ExtJsTreeNode>();
        foreach (var subFolder in subFolders)
        {
            folders.Add(new ExtJsTreeNode(subFolder.Name, subFolder.FullName.Replace(BASE_PATH, ""), "folder"));
        }
        return Json(folders);

    }

    private class ExtJsTreeNode
    {

        public string text { get; set; }
        public string id { get; set; }
        public string cls { get; set; }

        public ExtJsTreeNode(string text, string id, string cls)
        {
            this.text = text;
            this.id = id;
            this.cls = cls;
        }

    }

Un exemple d'un ActionResult personnalisé aquí .

0voto

Mehrdad Afshari Points 204872

Si j'ai bien compris votre question, vous voulez utiliser des vues différentes en fonction des paramètres passés au contrôleur. Si c'est le cas, vous pouvez utiliser cette déclaration dans l'action du contrôleur :

return View("ViewName");

Sinon, veuillez clarifier votre question.

0voto

GalacticCowboy Points 8185

Votre contrôleur ne devrait pas savoir ou se soucier de cela, autre que de savoir à quelle vue envoyer les données. La vue peut rendre les données dans n'importe quel format imaginable. J'ai des vues qui émettent du RSS (XML), etc. Dans le contrôleur, il faut soit l'envoyer à la vue par défaut, soit identifier explicitement la vue cible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X