在WCF服务中呈现Razor视图

4
这是一个相当奇怪的任务,但我无法更改要求。我们必须编写一个WCF服务(SOAP,而不是REST),并在响应对象的属性中返回HTML。
我不想使用:
- 硬编码字符串,并使用string.Format()填充一些值; - t4模板,因为未来很少有人能支持这种方法; - WebForm控件,因为我们的大多数开发人员习惯于使用MVC项目。
我已经知道如何将某些ActionResult呈现为字符串。所以,理想情况下,我希望能够创建一个控制器,调用某个操作并获得一个ActionResult。
为此,我创建了MVC应用程序并向其中添加了service.svc文件。服务正常工作 - 我可以调用它的方法并接收结果。但是当我尝试呈现Razor View时,我的问题开始出现。如果我只是创建任何控制器的实例,然后调用一个操作,控制器的ControllerContext属性为空,因此无法呈现View。我尝试动态创建ControllerContext,但似乎缺少某些内容。
我在这里找到了一个非常相似的问题here,但那里提供的解决方案对我来说并不起作用,因为WCF方法内的HttpContext.Current为空。
有人知道如何实现吗?或者有人可以建议其他简单灵活的方法,在WCF方法内呈现HTML?
2个回答

2
你还应该看一下Nancy框架(http://nancyfx.org),因为他们对RazorEngine的实现更加轻量级。
我在使用Nancy生成HTML时取得了相当大的成功——因为它被设计成本质上可测试,你可以很容易地将其滥用为自己的模板框架。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接