2009-03-24 8 views
0

Was ist der beste Weg, um druckbare Briefe aus einer MVC-Anwendung zu erstellen? Ich bin auf der Suche nach einer Art Serienbrief aus meiner App, die einen Serienbrief mit verschiedenen Werten ausgedruckt.Was ist der beste Weg, um druckbare Briefe aus einer MVC-Anwendung zu erstellen?

In ASP.NET habe ich dies zuvor durch Erstellen eines HTML-Dokuments und Anzeigen als application/msword, aber Ich habe das mit Code-Behind gemacht, was in MVC keine (einfache) Option ist, und ich weiß nicht, ob das die beste Methode ist oder nicht.

Beachten Sie, dass dies eine interne Anwendung ist, daher kann davon ausgegangen werden, dass jeder Benutzer Word auf seinem Computer hat. Damit wäre es schön, Word zu umgehen, aber ich könnte in beide Richtungen gehen. Je einfacher, desto besser. Irgendwelche Ideen/Methoden willkommen.

+0

Sie es in einem ShowModalDialog Popup zeigen könnte? – TStamper

+0

Solange es sauber gedruckt werden kann (das sind Briefe an Patienten), dann versuche ich jede Methode. – gfrizzle

Antwort

1

Da dies nur HTML mit dem ContentType auf Anwendung/msword festgelegt ist, kann ich keinen Grund sehen, warum Sie Code-Behind verwenden möchten.

Eine Standard-MVC-Ansicht mit einer typischen HTML-Vorlage, die mit geeigneten <%=...> gespickt ist, in denen Ansichtsdaten eingefügt werden müssen, scheint der vernünftige Ansatz zu sein. Auch dort, wo Sie eine Schleife machen möchten.

BTW, warum ist Code-behind keine einfache Option?

+0

Würde diese Methode den Druck nicht dem Browser überlassen, der alle Artefakte zur Kopf- und Fußzeile hinzufügt? – gfrizzle

+0

"Einfache Option" ist wahrscheinlich der falsche Weg, es zu setzen. MVC "entmutigt" Code-Behind, also habe ich versucht, in dieser Art zu bleiben, aber wenn das das richtige Werkzeug für den Job ist, habe ich kein Problem dort hinzugehen. – gfrizzle

+0

@gfizzle: Wenn Sie ContentType = "application/word" wie angegeben einstellen, wird der Browser den Inhalt nicht verarbeiten, Word wird es tun. – AnthonyWJones

0

In Ihrem Controller:

return Content(contentGoesHere, "application/msword"); 
Verwandte Themen