有人知道如何获取 Action 中 View 生成的 html 吗?
是这样的吗:
public ActionResult Do()
{
var html = RenderView("hello", model);
...
}
最佳答案
我在一个名为 Utilities.Common
的类中使用静态方法,我不断地将 View 作为 JSON 对象的属性传递回客户端,因此我需要将它们呈现为字符串。给你:
public static string RenderPartialViewToString(Controller controller, string viewName, object model)
{
controller.ViewData.Model = model;
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.ToString();
}
}
这适用于完整 View 和部分 View ,只需将 ViewEngines.Engines.FindPartialView
更改为 ViewEngines.Engines.FindView
。
关于asp.net-mvc - 在 MVC3 Razor 中,如何获取操作内渲染 View 的 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692131/