2009-04-25 73 views
7

我有以下兩個項目的解決方案 - MyNamespace.Services和MyNamespace.Web。渲染視圖(或部分)在另一個項目中?

Web包含一個MVC Web應用程序。

在Service項目中,我有一個EmailService類,負責發送電子郵件給用戶。

我想爲電子郵件模板使用部分或視圖(ascx或aspx)。 我已經找到了若干解決方案,如何渲染局部視圖並以字符串的形式獲得結果,如果模板位於Web項目內部(因爲它是調用電子郵件服務的Web項目中的控制器),它將正常工作。

(2種方法我試圖使用或者是http://developersisland.blogspot.com/2009/01/renderpartial-to-string-in-aspnet-mvc.html(在博客的底部)或http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/

但我的電子郵件模板位於服務項目。

如何從Web項目內部的服務項目中引用模板(部分/視圖)的路徑,該模板與LoadControl或RenderPartial一起使用,它們都將虛擬路徑用作參數?

這似乎不管我做了什麼根目錄設置爲Web項目目錄。

可能嗎?

很高興能夠以某種方式獨立於Web項目工作。

回答

2

如果沒有開發自己的視圖引擎,我不認爲這是可能的。默認視圖引擎只會在特定位置查看局部視圖 - 其中包括當前視圖文件夾和共享視圖文件夾。我不認爲你可以搜索當前項目之外的視圖,因爲這些視圖沒有在視圖引擎中註冊。

1

所有上面的鏈接都不錯,這可能會有所幫助。你一定能夠得到它來查找和使用視圖。我遇到的問題是與他們合作,其他項目中沒有代碼完成等。這是半可能獲取,以及通過與項目文件,但各地擺弄說實話,我結束了與分組解決方案會以上

Plug in architecture for ASP.NET MVC

2

你可以考慮剛創建HTML輔助渲染電子郵件和將其作爲字符串返回。

無論是部分視圖還是使用HTML返回字符串的方法都無關緊要。我實際上認爲,對於你的情況幫手方法將是一個更好的選擇。

簡單的輔助方法在使用方法上也更加靈活。

相關問題