2010-01-03 35 views
3

我需要呈现一个ASP.NET MVC视图到一个字符串,以便能够通过电子邮件发送它(这是一个订单确认电子邮件定义在.ascx文件中)。呈现ASP.NET MVC字符串查看没有HttpContext或ControllerContext?

我已经成功地使用question中的方法的one将ASP.NET MVC视图呈现为字符串。

但是现在我需要能够通过WCF服务(通过silverlight访问)来完成,因此我没有ControllerContext。此WCF服务包含在与我的MVC项目相同的项目中,因此可以访问我的所有模型等。

我已经看过关于此问题的Stackoverflow上的几个问题,但他们似乎都需要控制器上下文。我以为有mvccontrib中的东西,但它doesn't seem to be there anymore

我找到的最接近的是accepted answer to the aforementioned question,但不幸的是在渲染视图中使用了RenderPartial。

我希望也许有些幕后工作的ASP.NET MVC 2有关的RenderAction可能有助于现在这可能吗?

回答

1

将Web表单视图引擎集成到MVC中的方式需要控制器上下文,因为它实际上将模板/渲染引向ASP.NET Page类,将模板内容直接写入响应流。

我建议你看一下spark视图引擎(它将呈现WFVE模板而不用更改),并使用它来从WCF服务中生成模板化的电子邮件。在Spark下载中有这样的例子。

+1

这里会有一个嘲讽的上下文吗? – 2010-01-13 22:04:01

+0

或仅用于运行控制器操作并检索模型?我之前试图嘲笑一个背景,并没有走得太远。现在我只是没有时间玩别的东西 – 2010-01-13 22:05:01

+0

我不会推荐嘲笑上下文,除非你基本上重新创建一个完美的模拟你冒险引入错误。说真的,火花让我花了不到一个小时的时间来整合它,值得一看。 – Neal 2010-01-15 01:17:14

1

为什么不创建一个ControllerContext然后,即使fake

相关问题