2012-04-26 11 views
7

Sto costruendo un'app ASP.NET MVC 3 usando Razor come linguaggio modello.È possibile modificare l'output del viewer di rasoio appena prima di inviarlo al client?

Ecco cosa vorrei fare: Quando tutti i contenuti del modello da cshtml-file per una determinata richiesta sono stati analizzati in vista del rasoio e pronti per l'output al visitatore - quindi vorrei inserire alcune informazioni aggiuntive in il contenuto html analizzato.

Quindi la mia domanda è: C'è un evento di qualsiasi tipo a cui aggrapparsi all'interno del Viewer di Razor o all'interno del framework MVC che mi consente di fare questo tipo di modifiche all'output?

Non chiedere perché vorrei fare qualcosa di simile in un'applicazione MVC, è una storia lunga e noiosa.

+0

Stai cercando di modificare il codice HTML generato dopo rasoio ha reso? Se è così puoi modificare il file cshtml? se no, può essere fatto ma non raccomandato. – Buildstarted

+0

So che non è consigliato, ma purtroppo ho bisogno di modificare il cshtml in ritardo nel "ciclo". Comunque ... Avete qualche suggerimento su come farlo? –

+1

Se questo è il caso, per favore vedi questa domanda: http://stackoverflow.com/questions/8642148/how-to-intercept-view-rendering-to-add-html-js-on-all-partial-view – Buildstarted

risposta

0

Data la vaghezza della tua domanda, forse questo articolo potrebbe aiutare, o forse è possibile specificare in che modo l'articolo non è utile ...

Dependency Injection in ASP.Net MVC Views

UPDATE:

Come su un ActionFilter? Mi sembra di ricordare che puoi ottenere il viewresult e armeggiare con esso in un ActionFilter, anche se l'ho sempre fatto solo per una trasformazione JSON. Ecco un altro articolo: Use ASP.Net action filters to render

Ecco un SO answer--this might be a duplicate question!

+0

Il problema, per quanto posso vedere, con quell'articolo è che non espone alcun metodo di iniezione nell'output nel punto del ciclo di rendering in cui è stato eseguito il rendering di tutto il contenuto. Il metodo Render nell'esempio dell'articolo verrà eseguito per ogni vista. Quello che sto cercando è un metodo per fare iniezioni di dati nell'output quando sono certi che tutto il contenuto è stato reso. –

+0

E per il tuo caso speciale, vuoi farlo prima che lasci il server, e assolutamente non può essere fatto nella vista stessa? – brightgarden

+0

Sì, è corretto. –

Problemi correlati