2009-04-25 18 views
7

tengo una solución con los siguientes dos proyectos: MyNamespace.Services y MyNamespace.Web.Render View (o Parcial) ¿En otro proyecto?

Web contiene una aplicación web MVC.

En el proyecto de Servicio tengo una clase EmailService que se encarga de enviar correos electrónicos al usuario.

Quiero usar una vista parcial o una vista (ascx o aspx) para plantillas de correo electrónico. He encontrado varias soluciones sobre cómo renderizar una vista parcial y obtener el resultado como una cadena que funciona bien si la plantilla está dentro del proyecto web (ya que es un controlador en el proyecto web que llama al servicio de correo electrónico).

(los 2 métodos que estoy tratando de utilizar es http://developersisland.blogspot.com/2009/01/renderpartial-to-string-in-aspnet-mvc.html (en la parte inferior del blog) o http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/)

Pero mis plantillas de correo electrónico se encuentran en el proyecto de servicios.

¿Cómo puedo modificar la ruta a las plantillas (parcial/vista) en mi proyecto de servicio desde el proyecto web, que funciona con LoadControl o RenderPartial que toma una ruta virtual como parámetro?

Parece que no importa lo que haga el directorio raíz está configurado en el directorio de proyectos web.

¿Es posible?

Sería bueno poder hacer que funcione de forma independiente del proyecto web de alguna manera.

Respuesta

2

No creo que esto sea posible sin desarrollar su propio motor de visualización. El motor de vista predeterminado solo buscará en ciertas ubicaciones la vista parcial, que incluye la carpeta de vista actual y la carpeta de vistas compartidas. No creo que pueda buscar vistas fuera del proyecto actual ya que esas vistas no están registradas con el motor de visualización.

1

Todo enlace de arriba son buenos, esto podría ayudar también. sin duda podrá conseguirlo para encontrar y usar las vistas. El problema que tenía era trabajar con ellos, no había código completado, etc. en los otros proyectos. Fue semi posible conseguir que, además de perder el tiempo con el archivo de proyecto, pero para ser honesto Terminé yendo con la solución Agrupación por encima de

Plug in architecture for ASP.NET MVC

2

Se puede considerar sólo la creación de sus ayudantes HTML para hacer mensajes de correo electrónico y devolverlo como una cadena.

No importa si es una vista parcial o un método que devuelve una cadena con HTML. De hecho, creo que para su caso los métodos auxiliares serían una mejor opción.

Un método de ayuda simple también es más flexible en la forma en que puede usarlo.

Cuestiones relacionadas