Domanda

Sto cercando alcuni suggerimenti su come procedere. Ogni input è apprezzato!

Attualmente ho un'applicazione ASP.NET MVC. Sul client, ho un collegamento con un ID di un documento XPS. Quando l'utente fa clic sul collegamento, vengono indirizzati a una pagina con i dettagli sul documento. Oltre a queste informazioni, desidero visualizzare il documento accanto a queste informazioni, nella stessa pagina.

Sul lato server, una volta che ho l'ID, posso ottenere il documento, serializzato come array di byte, dal database. La domanda è: qual è il modo migliore per ottenere quel documento serializzato nella pagina web?

Preferirei SEMPRE non dover rilasciare quel documento nel file system e quindi raggruppare un percorso di file. Vorrei poter trasmettere il documento al browser come tipo di contenuto di " application / vnd.ms-xpsdocument " ;.

Ho provato a usare un controllo web per gestirlo (non riesco a scrivere il binario), ho pensato di creare un gestore HTTP per farlo (non ho idea di dove iniziare), e mi sono confuso con un altro paio di modi per porta lo stream del documento sul browser.

Inoltre, c'è anche la domanda su come incorporare il documento nella pagina web. Uso un tag EMBED? O un oggetto? O uso un iframe e imposto l'origine in modo che punti a qualunque cosa recapiti il ??documento?

Ancora una volta, non mi aspetto una soluzione avvolta in un arco. Sto cercando qualche consiglio su come procedere. E, sebbene questa domanda riguardi documenti xps, si applica a qualsiasi applicazione che esegue lo streaming di un file binario che deve essere ospitato in un browser (PDF, ecc.)


Va ??bene, come per la visualizzazione nel browser, una parola: Silverlight. Questo è risolto. Ho ancora il problema di capire il modo migliore per inviarlo dal server al browser.


Colpiscilo. Sembra che Silverlight non sia abbastanza avanzato per visualizzare un documento XPS ancora abbastanza. Sto pensando a un iframe che punta a un gestore http ora ... L'iframe funziona. Peccato che getta l'intera cosa nel tubo. Suppongo che potrei sempre togliere la prima pagina e inviare quel cucciolo ...


Wow. Non è necessario un gestore HTTP. Un ActionResult personalizzato in MVC è tutto ciò che serve. Quanto è fantastico?

È stato utile?

Soluzione

Penso che il modo più semplice sarebbe quello di fornire il documento come link (target = " _blank ") dalla pagina dei dettagli. Ciò ha diversi vantaggi:

  • Non è necessario recuperare e trasmettere l'intero documento a meno che l'utente non lo richieda.
  • Sul mio sistema almeno IE è già registrato come visualizzatore XPS predefinito, quindi dando al documento la propria finestra si evita l'intera domanda su come incorporarlo.
  • Rende semplice fornire un'origine streaming per il documento: basta usare un gestore HTTP con un ID per un parametro della stringa di query.

Anche se non ti piace quell'idea, scegli sicuramente un gestore HTTP per la trasmissione di documenti. È davvero semplice: quando si crea un nuovo gestore HTTP in Visual Studio, si dovrebbe avere una bella pagina con tutto il lavoro già fatto.

Altri suggerimenti

Esiste un controllo Silverlight in grado di visualizzare documenti XPS. Vedi http://firstfloorsoftware.com/blog/announcement-document-toolkit- for-silverlight / per di più

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top