.net - 如何在 Controller 中为 Json 呈现部分 View

标签 .net ajax json asp.net-mvc-3 controller

如何呈现要在 Controller 的 JsonResult 中使用的局部 View ?

return Json(new
{
    Html = this.RenderPartialView("_EditMovie", updatedMovie),
    Message = message
}, JsonRequestBehavior.AllowGet);

最佳答案

RenderPartialView是一种自定义扩展方法,它将 View 呈现为 string .

没有提到 in the article (您最初提到的内容)但您可以在文章所附的示例代码中找到它。
它可以在\Helpers\Reders.cs 下找到

这是有问题的方法的代码:

public static string RenderPartialView(this Controller controller, 
    string viewName, object model)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = controller.ControllerContext.RouteData
            .GetRequiredString("action");

    controller.ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines
            .FindPartialView(controller.ControllerContext, viewName);
        var viewContext = new ViewContext(controller.ControllerContext, 
            viewResult.View, controller.ViewData, controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);

        return sw.GetStringBuilder().ToString();
    }
}

关于.net - 如何在 Controller 中为 Json 呈现部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955015/

相关文章:

.net - 有哪些不同的 CLR 句柄类型?

asp.net - asp 的边框 :panel

c# - 从 C# 中的 DBMS_OUTPUT.GET_LINES 获取输出缓冲区

javascript - jsmart - 无法获取模板内容(及时?)

java - 安卓应用 : Gson crashed when reading List

c# - WPF 中的便笺项目。模型、 View 、 View 模型

php - 后台刷新动态数据

Jquery 模态表单与 Struts 1.3

javascript - 属性未显示在 json 中,重构 json 对象

php - ExtJs Grid 中的 JsonStore 数据未加载