C# Rendent Vue Partielle Sans Contrôleur
J'ai de la difficulté à l'aide de "RenderPartialViewToString" sans un contrôleur de classe.
Je suis actuellement en train de créer de HTML au sein de démarrage de l'application, qui nécessite de faire un modèle de prise de vue et de tournage de la vue dans une chaîne HTML.
Au sein de mon point de vue, il utilise le HTML fonction d'assistance/extension qui semble être la seule à être là, si un contrôleur est là.
Quelqu'un peut jeter une certaine lumière sur la façon dont je peux le faire?
OriginalL'auteur LmC | 2014-02-18
Vous devez vous connecter pour publier un commentaire.
De rasoir.Analyser est obsolète maintenant. Avec la version 3.5 du moteur de Rasoir vous devez suivre les étapes décrites ici:
https://antaris.github.io/RazorEngine/Upgrading.html
Le texte ci-dessous est copié mot à mot à partir du lien ci-dessus:
est maintenant (quand le modeltype est connu ou vous voulez précompiler au démarrage)
ou (quand vous voulez paresseux compilation, comme Parse)
La sémantique équivalent one-liner (à utiliser uniquement pour commencer avec RazorEngine rapidement):
OriginalL'auteur Tom Regan
Vous ne pouviez pas utiliser html helper sans régulateur de courant de contexte.Essayez cette extensions pour rendre les afficher en html
Première méthode utilisée moteur de rasoir de la bibliothèque. Deuxième travail avec le contrôleur contexte.
télécharger moteur de rasoir de la bibliothèque.
De Nuget
Install-Package RazorEngine
ou visitez leur page github.com/Antaris/RazorEngineOriginalL'auteur user3257812
Une très belle réponse à cette question est Westwind.Web.Mvc.ViewRenderer.
Expliquer:
Si vous souhaitez rendre les vues à l'extérieur MVC vous avez besoin ControllerContext qui est pleinement fonctionnelle et Rasoir pouvez obtenir toutes les informations.
En utilisant le ViewRenderer classe, vous ne pouvez appeler cette méthode pour rendre la vue en passant de modèle et de vue du dictionnaire de données:
J'espère que cela serait utile.
Profiter 🙂
Vous aurez besoin
HttpContext.Current
d'une valeur fonctionnelle pour ViewRenderer. C'est très bien aussi longtemps que vous l'utilisez lorsque le contrôleur est en cours d'exécution au sein d'un serveur web. Pour les tests unitaires (pas de serveur web et HttpContext.Courant == null) j'ai essayé de le contourner, mais finissait toujours de la même NullReferenceException profond dans le MVC code sans de plus amples informations. Au lieu de cela j'ai utilisé le RazorEngine comme il a travaillé dans les deux scénarios avec et sans HttpContext.merci. J'ai eu le même problème avec null HttpContext. avez-vous un exemple de travail de lien pour RazorEngine?
Malheureusement, je n'ai pas un exemple de travail que je peux partager. En général RazorEngine est assez simple et facile à utiliser, mais.
RazorEngine ne fonctionne pas actuellement sur .NET Core 2.0; RazorLight ne fonctionne pas avec le HTML Helpers ou Tag Aides, et le ControllerContext n'est pas réalisable, donc il ne fonctionne pas si j'en ai besoin pour planifier la tâche. Donc, il ne semble pas être une très bonne solution jusqu'à présent.
OriginalL'auteur pixparker