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.
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.
- Pourquoi ne puis-je pas utiliser le package System.Net.Http dans une solution référencée System.Net.Http?
- Focus événement perdu pour une zone de texte Winforms?
- WebAPI DataMember Nom non utilisé lors de la dé / sérialisation via application / x-www-form-urlencoded
- Remplacement du traitement du type primitif par défaut dans Json.Net
- Qu’est-ce qui détermine le nombre de threads pour les tâches générées par TaskFactory?
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?