2009-03-24 11 views
0

Quelle est la meilleure façon de créer des lettres imprimables à partir d'une application MVC? Je cherche une sorte de fusion et publipostage de mon application qui imprime une lettre type avec différentes valeurs remplies.Quelle est la meilleure façon de créer des lettres imprimables à partir d'une application MVC?

Dans ASP.NET, je l'ai fait précédemment en créant un document HTML et en l'affichant comme application/msword, mais Je l'ai fait avec code-behind, ce qui n'est pas une option (facile) dans MVC, et je ne sais pas si c'est la meilleure méthode ou non.

Notez qu'il s'agit d'une application interne, donc on peut supposer que tout le monde a Word sur leur ordinateur. Cela dit, ce serait bien de contourner Word, mais je pourrais aller dans un sens ou dans l'autre. Le plus simple sera le mieux. Toutes les idées/méthodes sont les bienvenues.

+0

pourrait vous montrer dans un popup ShowModalDialog? – TStamper

+0

Tant qu'il peut être imprimé proprement (ce sont des lettres allant aux patients), alors je vais essayer n'importe quelle méthode. – gfrizzle

Répondre

1

Puisqu'il ne s'agit que de HTML avec le ContentType défini sur application/msword, je ne vois pas pourquoi vous voudriez utiliser le code-behind.

Une vue MVC standard avec un modèle HTML typique parsemé de <%=...> approprié où les données de vue doivent être insérées semble être l'approche sensée. Même là où vous pourriez vouloir faire une boucle.

BTW, pourquoi le code-behind n'est-il pas une option facile?

+0

Cette méthode ne laisserait-elle pas l'impression au navigateur, ce qui ajoute tous les artefacts à l'en-tête et au pied de page? – gfrizzle

+0

"Option facile" est probablement la mauvaise façon de le mettre. MVC sorte de "décourager" le code-behind, alors j'essayais de rester dans cette veine, mais si c'est le bon outil pour le travail, je n'ai aucun problème pour y aller. – gfrizzle

+0

@gfizzle: si vous définissez ContentType = "application/mot" comme indiqué, le navigateur ne traitera pas le contenu, Word le fera. – AnthonyWJones

0

Dans votre contrôleur:

return Content(contentGoesHere, "application/msword"); 
Questions connexes