我需要将ASP.NET MVC视图呈现为字符串,以便能够通过电子邮件发送它(它是.ascx文件中定义的订单确认电子邮件)。
我已成功地使用此问题中的一种方法将ASP.NET MVC视图呈现为字符串。
但是现在我需要能够通过WCF服务(可以通过silverlight访问)来实现它,所以我没有ControllerContext。此WCF服务包含在与我的MVC项目相同的项目中,因此可以访问我的所有模型等。
我在Stackoverflow上查看了有关此问题的几个问题,但它们似乎都需要一个控制器上下文。我认为mvccontrib中有一些东西,但它似乎不再存在了。
我发现的最接近的答案是上述问题的接受答案,但不幸的是,在你正在呈现的视图中,RenderPartial会中断。
我希望也许有些与RenderAction相关的ASP.NET MVC 2幕后工作可能有助于实现这一目标吗?
答案 0 :(得分:2)
BuildStarted和我已经组装了一个你可能会觉得有用的独立Razor模板引擎(http://razorengine.codeplex.com)。您需要将.ascx内容调整为简单的字符串模板,但它应该可以完成这项工作。
如果你有NuGet,你可以运行Install-Package RazorEngine
答案 1 :(得分:1)
您可以结帐following blog post。另外Postal值得一看。
答案 2 :(得分:0)
您需要创建一个虚假的HttpContextBase
,其假冒HttpRequestBase
会从其属性中返回有意义的值。