2011-03-07 85 views
3

我需要呈現一個ASP.NET MVC視圖到一個字符串,以便能夠通過電子郵件發送它(它是一個.ascx文件中定義的訂單確認電子郵件)。呈現ASP.NET MVC字符串查看沒有HttpContext或ControllerContext?

我已經成功地使用此問題中的一種方法呈現ASP.NET MVC視圖爲字符串。

但是現在我需要能夠通過WCF服務(這將通過silverlight訪問)來完成,所以我沒有ControllerContext。此WCF服務包含在與我的MVC項目相同的項目中,因此可以訪問我的所有模型等。

我已經看過關於此問題的Stackoverflow上的幾個問題,但他們似乎都需要控制器上下文。我以爲mvccontrib中有一些東西,但它似乎不再存在。

我找到的最接近的答案是上述問題的接受答案,但不幸的是在渲染視圖中RenderPartial會中斷。

我希望也許有些幕後工作的ASP.NET MVC 2有關的RenderAction可能有助於現在這可能嗎?

+0

我正在尋找同樣的事情。 – ShaneKm 2013-04-08 12:31:50

回答

0

您需要創建一個僞造HttpContextBase假冒HttpRequestBase從其屬性返回有意義的值。

+0

請問您能更具體些嗎,我的意思是我該怎麼做? – Florin 2011-03-08 08:35:24

+0

@Florin:創建繼承「HttpContextBase」和「HttpRequestBase」的類並覆蓋基本屬性。然後你可以使用它們來創建一個ControllerContext。 – SLaks 2011-03-08 15:23:29

2

BuildStarted和我已經放在一起你可能會發現有用的獨立的剃刀模板引擎(http://razorengine.codeplex.com)。您需要將.ascx內容調整爲簡單的字符串模板,但它應該完成這項工作。

如果你已經有了的NuGet,可以運行Install-Package RazorEngine

相關問題