从MVC控制器将HTML呈现为字符串

时间:2012-07-18 12:24:44

标签: c# asp.net-mvc controller

我读了这篇非常有用的帖子:how to render html to a string而不是MVC3中的屏幕。

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

 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为null。我能否以某种方式指定光盘上的视图?

2 个答案:

答案 0 :(得分:0)

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

的属性

答案 1 :(得分:0)

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

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