我正在努力更新使用ASP.NET MVC2构建的移动网站,以模仿使用传统ASP.NET表单构建的非移动网站的某些功能。这是我第一次在MVC工作。在我询问如何克服ViewState的丢失之前,我已经阅读了几个,我得到了MVC的概念以及为什么它是无状态的,但是我不确定如何管理需要有状态的实例。原始网站。
例如,我有一个视图,需要调用Web服务来加载一组付款计划。付款计划被加载并显示给用户。当用户选择付款计划时,表单将发布,我需要根据所选付款计划的属性以及可能的其他付款计划的属性进行一些计算。但是,当然,它们已不复存在。我看到的选项和问题:
我根本不喜欢ViewState或传统的ASP.NET,到目前为止真的很喜欢MVC,但我还不确定如何处理这类事情。提前谢谢。
为了避免我的问题被解释为广泛,问题是:当状态是必要的,因为它似乎在这里,你如何用MVC2存储它?
答案 0 :(得分:1)
我发现使用Session
状态或类似Application
状态或Cache
等更全局的问题并不存在问题。您所做的只是从服务中缓存一个值。这是“可选状态”。即使您未在Cache
中找到要保存的值,您的代码仍然有效。
当他们说“无国籍”时,这不是他们的意思。例如,它们意味着控制器方法的行为不应该依赖于之前对控制器方法的调用。控制器需要操作的所有内容都应该在每次请求时传递给它,可能是ViewBag
。