2009-04-25 18 views
7

Mam rozwiązanie z następujących dwóch projektów - MyNamespace.Services i MyNamespace.Web.Widok renderowania (lub częściowy) W innym projekcie?

Sieć zawiera aplikację internetową MVC.

W projekcie Service mam klasę EmailService, która zajmuje się wysyłaniem wiadomości e-mail do użytkownika.

Chcę użyć częściowego lub widoku (ascx lub aspx) do szablonów wiadomości e-mail. Znalazłem kilka rozwiązań, jak renderować częściowy widok i uzyskać wynik jako ciąg, który działa poprawnie, jeśli szablon jest wewnątrz projektu WWW (ponieważ jest to kontroler w projekcie sieciowym, który wywołuje usługę poczty e-mail).

(na 2 sposoby staram się wykorzystać to albo http://developersisland.blogspot.com/2009/01/renderpartial-to-string-in-aspnet-mvc.html (na dole bloga) lub http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/)

Ale moje szablony e-mail znajdują się w projekcie usługowej.

Jak mogę odnieść ścieżkę do szablonów (częściowych/widoków) w moim projekcie usługi z poziomu projektu WWW, który działa z funkcją LoadControl lub RenderPartial, która jako parametr przyjmuje ścieżkę wirtualną?

Wygląda na to, że bez względu na to, co robię, katalog główny jest ustawiony na katalog projektów internetowych.

Czy to możliwe?

Dobrze byłoby móc w jakiś sposób działać niezależnie od projektu internetowego.

Odpowiedz

2

Nie sądzę, że jest to możliwe bez rozwijania własnego mechanizmu wyświetlania. Domyślny mechanizm wyświetlania będzie wyglądał tylko w niektórych lokalizacjach dla widoku częściowego - obejmującego bieżący folder widoku i folder udostępnionych widoków. Nie sądzę, że możesz szukać widoków poza bieżącym projektem, ponieważ te widoki nie są zarejestrowane w aparacie widoku.

1

Wszystkie powyższe linki są dobre, to może pomóc, jak również. na pewno będziesz w stanie go znaleźć i wykorzystać widoki. Problem polegał na tym, że pracowałem z nimi, w innych projektach nie było żadnego uzupełnienia kodu. To było pół możliwe, aby ta, jak również przez fiddling z plikiem projektu, ale szczerze mówiąc, skończyło się z roztworem Grupowanie powyżej

Plug in architecture for ASP.NET MVC

2

Można rozważyć tylko tworzenie swoich pomocników HTML do renderowania wiadomości e-mail i zwróć go jako ciąg znaków.

Nie ma znaczenia, czy jest to widok częściowy, czy metoda zwracająca ciąg znaków z kodem HTML. Myślę, że dla twojego przypadku metody pomocnicze byłyby lepszym wyborem.

Prosta metoda pomocnicza jest również bardziej elastyczna pod względem sposobów jej wykorzystania.