gpt4 book ai didi

c# - 更新局部区域 MVC3

转载 作者:行者123 更新时间:2023-11-30 12:16:08 25 4
gpt4 key购买 nike

我正在寻找一些关于使用 Razor 引擎更新 MVC3 中的部分区域的指示。

现在,我正在为 ajax 请求使用 jquery。

一点上下文:我有一个“集合”列表,我将其包装在局部 View 中,只是对相关 View 的模型对象中的列表执行 for-each。

然后我有一个“添加集合”按钮,只显示一个模式对话框,其中包含用于添加新集合的表单。单击“添加”后,ajax 请求会在数据库中创建集合,并且当前会返回一个指示成功的 JSON 对象以及字符串“Collection Created”。在我的 jquery ajax 处理程序中,我检查了这个 json 对象,检查状态是否为“成功”,然后使用 jquery 显示包含“已创建集合”字符串的类似咆哮的通知。

现在我的问题是:我是否可以在这个 ajax 请求中更新我的收藏列表?无论如何我可以抛出部分 View ,迭代集合,以某种方式返回成功的 json 对象吗?

非常简单:我想以某种方式更新 HTML,但仍保留 JSON 对象,以便我可以显示我的通知。

最佳答案

是的,您可以将部分呈现为字符串并将其包装为 JSON。我经常使用这种方法,但我听说有人说这是不好的做法。到目前为止,我还没有遇到任何问题,我已经使用了几年。

我实际上使用了一个返回 JSON 的自定义 ActionResult。它包装多个 View 并将它们作为字符串数组发送回客户端。 “不太直接”的一点是在 Controller 操作中将 View 渲染为字符串。下面是执行此操作的一些代码:

    public static string RenderViewToString(ControllerContext controllerContext, string viewPath, ViewDataDictionary viewData, TempDataDictionary tempData)
{
ViewEngineResult result = ViewEngines.Engines.FindPartialView(controllerContext, viewPath);

if (result == null || result.View == null)
throw new Exception("No view found for the following path: " + viewPath);

ViewContext viewContext = new ViewContext(controllerContext, result.View, viewData, tempData, new StringWriter());

HtmlHelper helper = new HtmlHelper(viewContext, new ViewPage());

return helper.Partial(viewPath, viewData).ToHtmlString();
}

关于c# - 更新局部区域 MVC3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5933901/

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