Rendu d’une vue en chaîne dans ASP.NET MVC 2

Nous devons rendre un ActionResult en ssortingng pour append des pages à notre index de moteur de recherche interne. Nous avons choisi cette solution pour rendre une chaîne .

J’ai rencontré un problème avec l’appel ExecuteResult utilisé pour traiter la vue.

Extrait de code:

 var oldController = controllerContext.RouteData.Values["controller"]; controllerContext.RouteData.Values["controller"] = typeof(TController).Name.Replace("Controller", ""); viewResult.ExecuteResult(controllerContext); // this line breaks 

Je reçois l’erreur suivante:

"Object reference not set to instance of object" error.

J’ai confirmé que viewResult n’est pas null, donc l’exception doit être levée en interne dans ExecuteResult .

Que pourrions-nous manquer?

Je l’ai compris. Le problème avec ExecuteResult ne fonctionnait pas comme prévu, car je ne m’étais pas moqué de ControllerContext correctement. J’ai pu résoudre le problème en moquant le contexte controlco comme décrit dans ce message SO:

Contexte du contrôleur Asp.net-mvc moqueur

J’espère que ce post aidera quelqu’un dans le futur s’il essaie de faire quelque chose de similaire.

Je n’ai pas essayé moi-même, mais Phil Haack a suggéré un moyen de générer une vue sur une chaîne ici en pensant à MVC.

MVCConsortingb a une classe BlockRenderer qui pourrait être utile pour ce scénario.

Ce n’est pas une réponse directe à votre question, mais pourquoi voudriez-vous afficher l’ensemble de la vue sous forme de chaîne dans votre index de recherche, plutôt que de: ) décharger le travail dans un processus séparé qui parsing le front-end en utilisant un ensemble de droits?