4

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

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

任何帮助将不胜感激 :)

4

1 回答 1

2

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

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

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

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

我还建议您不要在基本控制器中存储一堆服务。对于大多数请求,您可能只需要其中的一小部分。最好只检索您绝对需要的服务。

于 2010-03-08T12:01:35.847 回答