asp.net-mvc - 在 MVC3 Razor 中,如何获取操作内渲染 View 的 html?

标签 asp.net-mvc asp.net-mvc-3 razor

有人知道如何获取 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/

相关文章:

javascript - 如何创建自定义 "autocomplete"asp.net mvc(如谷歌)?

c# - 是使用 TempData、Session 还是静态变量在同一 Controller 中的 ActionResults 之间共享相同的值更好?

javascript - 将 Razor 语法与 JavaScript 混合

asp.net-mvc - Entity Framework 不更新模型的复杂集合属性

javascript - 使用 Jquery 加载 @Html.Action

c# - 无法从 Microsoft.AspNet.Identity 检索 UserId

asp.net-mvc - MVC3 - 'Element ' 链接“无法嵌套在元素 'link' 内” - 尝试添加页面特定的 CSS

c# - MVC3 EnumDropdownList 选定值

asp.net - 使用 linq 从两个表(连接)中获取数据并将结果返回到 View 中

c# - 带有部分 CRUD 的 MVC 5 BeginCollectionItem