|
|
1
25
我认为临时数据是一种通知用户的失火机制。提醒他们最近所做的事情是很好的,但我也会犹豫是否要在某些用户流程中将其作为必需步骤。原因是如果他们刷新页面,我相信它会消失。我想我也会犹豫是否使用它,因为它并没有很好地定义它的可靠性。 我想知道问题是,在确认步骤之前,您的操作是否重定向到了另一个页面。我想知道在他们第一次提交之后,您是否可以做足够的处理来生成确认对话框,然后返回带有确认问题的原始页面。类似于验证的方式,除了验证规则检查是否执行了确认步骤(在其他验证通过之前,确认UI一直隐藏)。 |
|
|
2
76
不需要厌恶tempdata…但如果使用不当,这肯定是设计不良的迹象。如果您使用的是restful url,tempdata是将邮件从post操作传输到get操作的最佳实践。考虑一下: 您在url products/new有一个表单。表单发布到products/create,它验证表单并创建产品,一旦成功,控制器将重定向到url products/1,一旦出错,将重定向回products/new以显示错误消息。 products/1只是产品的标准get操作,但我们希望显示一条消息,指示插入成功。tempdata非常适合这样做。将消息添加到post控制器中的tempdata,并在视图中放置一些if逻辑,然后完成操作。 失败时,我将在FormCollection中输入的值和错误消息集合添加到Post操作中的tempdata,并重定向到初始操作prodcats/new。 我已经向视图添加了逻辑,用以前输入的值和任何错误消息填充表单输入。我觉得很干净! |
|
|
3
31
我认为在使用tempdata之前最好先犹豫一下。tempdata存储在会话中,如果出现以下情况,这可能会对您产生影响:
如果您的站点需要具有高可用性,那么在应用会话状态时需要考虑其他因素,但这些都是可解决的问题。 |
|
|
4
3
我有一个getModel方法,它首先检查tempdata[“model”]并返回它。否则,getmodel将从数据库加载适当的数据。 当我有一个操作需要返回需要相同模型数据的不同视图时,它可以从数据库中节省额外的负载。 |
|
|
5
3
退房 sessionless controllers 在MVC3中。事实证明,使用会话可以防止单个用户的请求并行执行,从而导致性能下降。 由于tempdata默认使用会话,因此您将无法使用此功能。你可以切换到使用cookies作为tempdata,但这有点尴尬(至少对我来说)。不过,仍然比ViewState更干净,所以也许这不是一个大的交易破坏者。 |
|
|
6
2
你为什么这么反感?这件事只不过是把工作做好而已。) 如果您不喜欢它,因为它是非强类型的,您可以始终围绕它制作一个包装器,它将为您提供强类型接口。 |
|
7
2
这就像使用viewdata,这意味着它可能不存在安全风险。但我宁愿使用viewdata而不是tempdata。请在此处查看比较原因: http://www.squaredroot.com/2007/12/20/mvc-viewdata-vs-tempdata/ 根据设计的不同,您可以将用户/购物篮或所需内容存储在数据库中的tempdata中,只需要有一个“isready”字段,该字段指示其是否已完成,使其在以后可以扩展,如果您想记住,人们可以关闭浏览器。 |
|
|
8
0
所有的好答案,你有没有看过这个传递信息。 由于大多数会话都存储在内存中,因此tempdata和session不是RESTful体系结构的最佳选择。因此,当您想要使用服务器场时,用户会话将存在于一台服务器上,而他们的下一个请求可以发送到另一台服务器。 也就是说,看看tempdata在这里传递消息的用法。 http://jameschambers.com/2014/06/day-14-bootstrap-alerts-and-mvc-framework-tempdata/ 如果只用于重定向到另一个页面警报,那么Mabye可以将其调整为使用查询字符串方法。 |
|
|
Chanh Tran · TempData持久性 8 年前 |