2009-04-25 14 views
7

Ho una soluzione con i seguenti due progetti: MyNamespace.Services e MyNamespace.Web.Visualizzazione rendering (o parziale) In un altro progetto?

Web contiene un'applicazione Web MVC.

Nel progetto Servizio ho una classe EmailService che si occupa di inviare e-mail all'utente.

Desidero utilizzare una vista parziale o una vista (ascx o aspx) per i modelli di email. Ho trovato diverse soluzioni su come eseguire il rendering di una vista parziale e ottenere il risultato come una stringa che funziona bene se il modello si trova all'interno del progetto Web (poiché si tratta di un controller nel progetto Web che chiama il servizio di posta elettronica).

(i 2 metodi che sto cercando di utilizzare è o http://developersisland.blogspot.com/2009/01/renderpartial-to-string-in-aspnet-mvc.html (nella parte inferiore del blog) o http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/)

Ma i miei modelli e-mail si trovano nel progetto Servizi.

Come posso riferire il percorso dei template (partial/view) nel mio progetto di servizio dall'interno del progetto Web, che funziona con LoadControl o RenderPartial che entrambi prendono un percorso virtuale come parametro?

Sembra che non importa ciò che faccio la directory principale è impostata nella directory dei progetti Web.

È possibile?

Sarebbe bello essere in grado di farlo funzionare indipendentemente dal progetto Web in qualche modo.

risposta

2

Non penso sia possibile senza sviluppare il proprio motore di visualizzazione. Il motore di visualizzazione predefinito guarderà solo in determinate posizioni per la vista parziale, che include la cartella di visualizzazione corrente e la cartella di viste condivise. Non penso che tu possa cercare viste al di fuori del progetto corrente poiché quelle viste non sono registrate con il motore di visualizzazione.

1

Tutti i link di cui sopra sono buoni, questo potrebbe aiutare pure. Sarai certamente in grado di farlo trovare e utilizzare le visualizzazioni. Il problema che avevo era di lavorare con loro, non c'era il completamento del codice ecc negli altri progetti. E 'stato semi possibile per ottenere che anche da trafficando con il file di progetto, ma ad essere onesti ho finito per andare con la soluzione di raggruppamento sopra

Plug in architecture for ASP.NET MVC

2

Si può considerare solo la creazione di vostri aiutanti HTML per il rendering e-mail e restituirlo come una stringa.

Non importa se si tratta di una vista parziale o di un metodo che restituisce una stringa con HTML. In realtà penso che per il tuo caso i metodi di supporto sarebbero una scelta migliore.

Un metodo di supporto semplice è anche più flessibile nei modi in cui è possibile utilizzarlo.