Frage

Ich suche einige Vorschläge, wie um dies zu realisieren. Jede Eingabe wird geschätzt!

Zur Zeit habe ich eine ASP.NET MVC-Anwendung. Auf dem Client habe ich eine Verbindung mit einer ID eines XPS-Dokument. Wenn der Benutzer auf den Link klickt, werden sie mit Informationen über das Dokument auf einer Seite. Zusätzlich zu dieser Information möchte ich an der Seite dieser Informationen das Dokument angezeigt werden, in der gleichen Seite.

Auf der Serverseite, sobald ich die ID habe, kann ich das Dokument bekommen, als Byte-Array serialisiert, aus der Datenbank. Die Frage ist, was ist die am besten Art und Weise, dass die serialisierten Dokument in die Webseite zu bekommen?

Ich würde SCHWER bevorzuge nicht das Dokument in das Dateisystem löschen und dann einen Dateipfad munge zusammen. Ich möchte in der Lage sein, das Dokument als Content-Typ an den Browser von „application / vnd.ms-XpsDocument“ zu streamen.

Ich habe versucht, eine Web-Steuerung über das zu handhaben (kann binär aus nicht schreiben), dachte über einen HTTP-Handler die Schaffung dieser (keine Ahnung, wo ich anfangen soll) zu tun, und haben bedüdelt um mit ein paar andere Möglichkeiten, holen Sie sich den Dokumentenstrom an den Browser.

Darüber hinaus gibt es auch die Frage, wie das Dokument auf der Webseite einbetten. Ich einen EMBED-Tag verwenden? Oder ein Objekt? Oder verwende ich einen Iframe und die Quelle auf zeigen, was auch immer liefert das Dokument?

Auch ich erwarte nicht, eine Lösung in einem Bogen eingewickelt. Ich interessiere mich für einige Ratschläge, wie um dies zu realisieren. Und während diese Frage zu XPS-Dokumenten ist, gilt es für jede Anwendung, die eine binäre Datei-Streams, die in einem Browser (PDFs, etc.) gehostet werden soll.


Okay, wie im Browser angezeigt wird, mit einem Wort: Silverlight. Das ist gelöst. Ich habe immer noch das Problem, herauszufinden, den besten Weg, sie vom Server an den Browser zu senden.


das Schlagen. Es scheint, Silverlight ist nicht genug fortgeschritten nur recht ein XPS-Dokument angezeigt werden noch. Ich bin über einen Iframe denke jetzt an einen http-Handler zeigt ... Die iframe funktioniert. Schade, wirft es die ganze Sache nach unten das Rohr. Ich glaube, ich könnte immer die erste Seite abzustreifen und diese Welpen senden ...


Wow. Keine Notwendigkeit für einen HTTP-Handler. Eine benutzerdefinierte Action in MVC ist alles, was Sie brauchen. Wie friggen genial ist das denn?

War es hilfreich?

Lösung

Ich denke, der einfachste Weg, um das Dokument als Link (target = „_ blank“) von der Detailseite zu schaffen sei. Dies hat mehrere Vorteile:

  • Sie müssen nicht das gesamte Dokument abzurufen und Strom, wenn der Benutzer danach fragt.
  • Auf meinem System zumindest IE ist bereits als Standard-XPS-Viewer registriert, so von der Doc seinen eigenen Fenster geben Sie die ganze Frage von vermeiden, wie es einzubetten.
  • Es macht es einfach, eine Streaming-Quelle für das Dokument zur Verfügung zu stellen. Nur einen HTTP-Handler mit einer ID für einen Query-String-Parameter

Auch wenn Sie wie die Idee nicht, auf jeden Fall mit einem HTTP-Handler geht für Dokument zu übertragen. Es ist wirklich einfach zu tun: wenn Sie einen neuen HTTP-Handler in Visual Studio erstellen sollte es gibt Ihnen eine schöne Seite mit allen busy-Arbeit bereits getan.

Andere Tipps

Es gibt ein Silverlight-Steuerelement fähig XPS-Dokumente anzeigen zu lassen. Siehe http://firstfloorsoftware.com/blog/announcement-document-toolkit- for-Silverlight / für mehr

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top