首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >asp.net c# MVC:没有ViewState我该如何生活?

asp.net c# MVC:没有ViewState我该如何生活?
EN

Stack Overflow用户
提问于 2010-02-10 00:11:32
回答 8查看 41.4K关注 0票数 53

我只是在研究如何将WebForms转换为MVC:

在.net MVC中,哪些概念使得ViewState不是必需的?

如果表单被回发到自身等(即回发)?页面/用户控件如何维护其状态?

为了保持某种状态而不求助于会话状态,人们在做些什么?

当然,一个完全无状态的环境不能存在吗?

EN

回答 8

Stack Overflow用户

发布于 2010-02-10 00:20:50

视图状态只是一个又大又难看的隐藏表单域。

写出您自己的隐藏表单域,并在必要时对它们进行加密。

幸运的是,不再有任何简单的方法可以将大量数据转储到页面中,因此您必须谨慎选择要保存的内容。

票数 9
EN

Stack Overflow用户

发布于 2010-02-19 06:36:33

所有关于ASP.NET MVC不使用状态的回答都是正确的。但ASP.NET MVC实际上确实使用了一些状态,尽管它的工作方式与ViewState完全不同。

通常,当有人将数据发布到您的应用程序时,您将希望验证数据,并在数据无效时显示错误。但是,如果您只是立即返回包含错误消息的页面,当用户点击F5重新加载页面时,数据将被重新提交。这通常不是你想要的。因此,当您意识到数据POSTed无效时,您希望告诉用户获取页面(或者可能是另一个页面)并显示一条错误消息。您可以通过返回HTTP重定向状态代码来完成此操作。然而,一旦用户的GET请求进入,您如何知道显示什么错误消息呢?您必须以某种方式记住这一点,从您(服务器)处理POST到您处理GET。

为此,您可以使用一个名为TempData的ASP.NET MVC特性。这实际上只是一个围绕会话的包装器,它确保您放入TempData字典的任何内容都将保留在那里,直到下一个请求,而不再存在。

票数 3
EN

Stack Overflow用户

发布于 2010-02-10 00:18:05

状态是数据库中的模型。您可以仔细地缓存数据库,以减少页面加载时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2230519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档