繁体   English   中英

从MVC控制器将HTML渲染为字符串

[英]Render HTML to a String from MVC Controller

我读了这篇非常有帮助的文章: 如何在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为null。 我可以通过某种方式指定“光盘视图”吗?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM