asp.net-mvc – ASP MVC查看内容为JSON

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP MVC查看内容为JSON前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个MVC应用程序与相当多的控制器操作,使用Ajax(jQuery)调用并返回部分视图内容更新屏幕的一部分。但我宁愿做的是返回JSON这样的东西。
return Json(new { 
    Result = true,Message = "Item has been saved",Content = View("Partial") 
});

哪里的HTML只是Json的一个财产。这意味着我需要检索由View方法呈现的HTML。有没有任何简单的方法来做到这一点,我看到的几个例子是相当复杂的。

编辑:这个问题最初是为ASP.NET MVC 1,但是如果版本2使我更容易听到这个答案。

解决方法

这是答案!这是从 Martin From’s方法轻微的变化,似乎工作。如果有缺失的东西,人们可以在评论部分提供任何代码更改。谢谢。

从你的控制器调用如下:

string HTMLOutput = Utils.RenderPartialToString("~/Views/Setting/IndexMain.ascx","",items,this.ControllerContext.RequestContext);

将其添加到类中

public static string RenderPartialToString(string controlName,object viewData,object model,System.Web.Routing.RequestContext viewContext)
{
     ViewDataDictionary vd = new ViewDataDictionary(viewData);
     ViewPage vp = new ViewPage { ViewData = vd };

     vp.ViewData = vd;
     vp.ViewData.Model = model;
     vp.ViewContext = new ViewContext();
     vp.Url = new UrlHelper(viewContext);

     Control control = vp.LoadControl(controlName);

     vp.Controls.Add(control);

     StringBuilder sb = new StringBuilder();

     using (StringWriter sw = new StringWriter(sb))
     using (HtmlTextWriter tw = new HtmlTextWriter(sw))
     {
         vp.RenderControl(tw);
     }

     return sb.ToString();
}

猜你在找的asp.Net相关文章