Asp.net mvc MVC查看json中的html输出

Asp.net mvc MVC查看json中的html输出,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,也许这个问题以前被问过很多次,但我在哪里都找不到答案 我有一个行动 public ActionResult SearchResult() { return View(); } 现在我还需要一些与视图相关的数据,所以我尝试做以下工作 public JsonResult SearchResult() { var result = new JsonResult(); result.Data = new { Data = x, Html = "Here i need html ge

也许这个问题以前被问过很多次,但我在哪里都找不到答案

我有一个行动

public ActionResult SearchResult()
{
   return View();
}
现在我还需要一些与视图相关的数据,所以我尝试做以下工作

public JsonResult SearchResult()
{
   var result = new JsonResult();

   result.Data = new { Data = x, Html = "Here i need html generated from view" }

   return result;
}

如何从视图中生成html?如果需要,我还可以将其转换为控件。

您特别需要哪些数据?理论上,我认为您想要的大多数数据都来自您的模型,因此可以在控制器操作中访问


如果您需要一块HTML,也许可以将它的生成提取到一个方法中,您可以在视图和控制器操作中调用该方法。如果输出的HTML使用模型中的值,则可以采用HtmlHelper的形式。

您特别需要什么数据?理论上,我认为您想要的大多数数据都来自您的模型,因此可以在控制器操作中访问


如果您需要一块HTML,也许可以将它的生成提取到一个方法中,您可以在视图和控制器操作中调用该方法。如果输出的HTML使用模型中的值,则可以采用HtmlHelper的形式。

I在这种情况下,我使用的控制器类扩展受本文启发


在这种情况下,我使用了受本文启发的控制器类扩展


我们过去经常使用它,但是MVC2不喜欢它。我们实际上是用它来通过寻呼机返回结果的。最后非常缓慢,我们转而使用Ajax.BeginForm,以便将我们的应用程序升级到MVC2.0。我们曾经使用过它,但MVC2不喜欢它。我们实际上是用它来通过寻呼机返回结果的。最后非常缓慢,我们转而使用Ajax.BeginForm,以便将我们的应用程序升级到MVC2.0。
public static class ControllerHelper
{
    public static string RenderPartialViewToString(this Controller controller, 
        string viewName, object model)
    {
        if (string.IsNullOrEmpty(viewName))
            viewName = controller.ControllerContext.RouteData.
                GetRequiredString("action");

        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.GetStringBuilder().ToString();
        }
    }
}