gpt4 book ai didi

javascript - asp.net mvc,以 JSON 形式返回多个 View

转载 作者:行者123 更新时间:2023-12-03 10:19:07 25 4
gpt4 key购买 nike

是否可以向 Asp.net 中的 ajax 调用返回 2 个单独的 View ?

例如,如果 foo1 和 foo2 是 2 个 ActionResult 方法,每个方法返回一个 View ?

return Json(new { a = foo1(), b = foo2() });

目前正在尝试这样做,最终结果是 javascript 将其作为类对象而不是实际 View 返回,有人知道如何获取生成的渲染 html 吗?

编辑:我想我实际上想要什么,有没有办法以字符串格式返回渲染 View ?

最佳答案

是的,这是一种以字符串格式返回 View 的方法。

为此,您需要执行以下操作:

1.您需要某种方法来传递 View 名称和对象模型。为此,请引用下面的代码并将其添加到您的帮助程序类中。

 public static class RenderViewLib
{
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();
}
}
}

上面的代码将以字符串格式返回您的 View 。

2.现在从 json 调用中调用上述方法,如下所示:

 [HttpPost]
public JsonResult GetData()
{
Mymodel model = new Mymodel();
JsonResult jr = null;

jr = Json(new
{
ViewHtml = this.RenderPartialView("_ViewName", model),
ViewHtml2 = this.RenderPartialView("_ViewName2", model),
IsSuccess = true
}, JsonRequestBehavior.AllowGet);

return jr;
}

您将从 json 调用中获取 string 格式的 View 。

希望这就是您正在寻找的内容。

关于javascript - asp.net mvc,以 JSON 形式返回多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724931/

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