2011-03-07 87 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

相关问题