gpt4 book ai didi

asp.net-mvc - ASP.NET MVC,在 Ajax 请求之间维护模型状态

转载 作者:行者123 更新时间:2023-12-01 04:19:42 25 4
gpt4 key购买 nike

问题:
在第一个完整页面请求时,我的 Controller 调用 applicationServices 层(到我的业务层的 Web 服务代理)以填充存储在我自己的 Controller 基类属性中的当前服务集合。然后将其显示在 View 中。
该 Controller 上下文中的所有内容都可以访问此“服务集合”。现在,当我通过 AJAX 调用进一步调用相同的操作方法时,我显然命中了该 Controller 的不同实例,这意味着我的服务集合为空。

因此,除了再次重新获取整个集合之外,我会将这个集合存储在哪里,以便它在 ajax 请求之间持久化?我应该将它作为一个单独的 DomainModel 对象,Session 对象保存吗?....因为 ViewData 对我不起作用。原谅我的 MVC 无知 :)

任何帮助将不胜感激 :)

最佳答案

Web 本质上是无状态的,而 MVC 可以帮助您深入了解,也就是说,MVC 不会尝试使一些不是有状态的东西成为有状态的东西,这主要是老 ASP 的路径:每个请求都是它自己的请求并且它不应该知道过去执行过的任何其他请求。

我觉得完全按照这条路线走是最容易的,因为它往往保持干净、快速,并帮助您遵守最佳实践,例如关注点分离。

AJAX 更进一步:AJAX 的想法是可以这样实现简单的“删除”操作,即您只需要在持久层上授权和执行一个非常小的查询。就是这样。您甚至不需要将修改后的页面传回给用户。通过 JSON 的简单机器可读的成功/错误指示就足够了。

如果您开始为小型 AJAX 请求提供大量服务,您真的会失去它的大部分好处。

我还建议您不要在基本 Controller 中存储一堆服务。对于大多数请求,您可能只需要其中的一小部分。最佳做法是仅检索您绝对需要的服务。

关于asp.net-mvc - ASP.NET MVC,在 Ajax 请求之间维护模型状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400986/

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