ASP.NET MVC状态管理

3
我正在开发一个 .net mvc 网页应用,主页上有许多网页部件。我意识到网页部件是 .net forms 术语,但不确定如何称呼这些小节。因此,现在这些小节是在页面渲染时被调用的,但最终我会插入 JQuery 并使用 AJAX 调用这些小节。当用户在主页和其他页面之间切换时,这些小节或小部件需要保持状态。在 .net forms 中,页面状态信息存储在 viewstate 中,但在 .net mvc 中,viewstate 不可用(谢天谢地)。

那么,是否已经为 MVC 创建了这种功能的框架?如果没有,处理这种情况的最佳方法是什么?我想利用 HttpContext 对象并将所有内容存储在其中,但不确定该对象是否有任何大小限制。


它们被称为“部分视图”。 - Robert Harvey
1
我会尽量避免在MVC中管理“状态”,因为这正是ASP.NET表单(ViewState)的作用。 - dotariel
4个回答

2
与MVC中的其他内容一样,您需要在某个地方存储状态。正如其他用户指出的那样,使用部分视图将通过允许您拥有仅处理这些小部分的控制器来减少设计的复杂性。然后,它们可以负责保存/恢复/跟踪该部分的状态或信息。(这可以使用数据库、进程内存等实现。)
如果您将控件放在主页面中,则可以从其他逻辑中删除部件的实现,因此您无需担心捕获和返回与该部分相关的数据以及为视图而设计的其余模型。
像这样将部件分开也会使它们更容易进行AJAX化,因为它们已经独立于您的视图数据运行,即使它们同时呈现。

1

0

0

你可以使用输出缓存或数据缓存,这两种缓存方式都被MVC 1.0/2.0支持。


我不是在尝试缓存数据,而是在尝试存储每个部分视图的状态。例如,如果用户最小化了其中一个小部件,我希望应用程序记住下一次该用户仅在该会话期间导航到主页。我认为对于这种情况,缓存并不明智。 - Skadoosh
请查看以下网址:http://blog.stevensanderson.com/2008/10/15/partial-output-caching-in-aspnet-mvc/ 或 http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/outputcachinginmvcapplication02222009222109PM/outputcachinginmvcapplication.aspx。 - john

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接