我只是在研究如何将WebForms转换为MVC:
在.net MVC中,哪些概念使得ViewState不是必需的?
如果表单被回发到自身等(即回发)?页面/用户控件如何维护其状态?
为了保持某种状态而不求助于会话状态,人们在做些什么?
当然,一个完全无状态的环境不能存在吗?
发布于 2010-02-10 00:20:50
视图状态只是一个又大又难看的隐藏表单域。
写出您自己的隐藏表单域,并在必要时对它们进行加密。
幸运的是,不再有任何简单的方法可以将大量数据转储到页面中,因此您必须谨慎选择要保存的内容。
发布于 2010-02-19 06:36:33
所有关于ASP.NET MVC不使用状态的回答都是正确的。但ASP.NET MVC实际上确实使用了一些状态,尽管它的工作方式与ViewState完全不同。
通常,当有人将数据发布到您的应用程序时,您将希望验证数据,并在数据无效时显示错误。但是,如果您只是立即返回包含错误消息的页面,当用户点击F5重新加载页面时,数据将被重新提交。这通常不是你想要的。因此,当您意识到数据POSTed无效时,您希望告诉用户获取页面(或者可能是另一个页面)并显示一条错误消息。您可以通过返回HTTP重定向状态代码来完成此操作。然而,一旦用户的GET请求进入,您如何知道显示什么错误消息呢?您必须以某种方式记住这一点,从您(服务器)处理POST到您处理GET。
为此,您可以使用一个名为TempData的ASP.NET MVC特性。这实际上只是一个围绕会话的包装器,它确保您放入TempData字典的任何内容都将保留在那里,直到下一个请求,而不再存在。
发布于 2010-02-10 00:18:05
状态是数据库中的模型。您可以仔细地缓存数据库,以减少页面加载时间。
https://stackoverflow.com/questions/2230519
复制相似问题