gpt4 book ai didi

asp.net-mvc - ASP MVC 以 JSON 格式查看内容

转载 作者:行者123 更新时间:2023-12-03 14:05:32 26 4
gpt4 key购买 nike

我有一个 MVC 应用程序,其中包含很多使用 Ajax (jQuery) 调用的 Controller 操作,并返回更新屏幕的一部分的部分 View 内容。但我宁愿返回 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 略有不同方法,它似乎工作。如果缺少某些东西,请人们在评论部分提供任何代码更改。谢谢。

从你的 Controller 调用它是这样的:

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

将此添加到类(class)中
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-mvc - ASP MVC 以 JSON 格式查看内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com