2

我读了这篇非常有用的帖子:如何在 MVC3 中将 html 呈现为字符串而不是屏幕。

我已经创建了一个在我的控制器中执行此操作的函数。我现在希望能够从另一个项目的类中调用此方法,以便我可以将此功能作为服务提供。代码如下所示:

 using (var sw = new StringWriter())
        {
            var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
            var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
            viewResult.View.Render(viewContext, sw);
            viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
            return sw.GetStringBuilder().ToString();
        }

我想直接调用这个类,而不是通过 IIS。但随后 ControllerContext 为空。我可以以某种方式指定光盘上的视图吗?

4

2 回答 2

0

MVC 中的大多数控件都有一个名为"ToHtmlString();"

于 2012-07-18T12:32:22.857 回答
0

http://msdn.microsoft.com/en-us/library/system.web.mvc.viewengineresult(v=vs.108 )

您可以通过提供位置列表而不是调用 FindPartialView 创建 ViewEngineResult

于 2012-07-18T12:35:04.107 回答