【问题标题】:ASP.NET equivalent to JSF Session BeanASP.NET 等效于 JSF 会话 Bean
【发布时间】:2012-01-02 14:29:47
【问题描述】:

我对 JSF 和 ASP.NET 都很陌生,据我所知(如果我错了,请纠正我),在 JSF 中使用会话范围的 bean 时,数据暂时存储在服务器端,对于组件。但在 ASP.NET 中,此类临时数据似乎存储在页面本身的隐藏字段中,称为 Viewstate。

我的假设是否正确? ASP.NET 中是否有任何东西可以自动管理数据并将其存储在服务器端的对象中(就像 JSF 一样)?

【问题讨论】:

    标签: asp.net viewstate session-state


    【解决方案1】:

    ASP.NET 支持 Viewstate 和 Session 状态。这是有关会话状态的一些信息的链接。

    http://msdn.microsoft.com/en-us/library/ms178581.aspx

    我建议您尽量避免使用视图状态,并谨慎使用会话状态。您应该努力使您的 ASP.NET 应用程序尽可能地“无状态”。不要过度使用会话状态,否则您可能会遇到可扩展性问题。考虑以下替代方案。

    http://www.4guysfromrolla.com/webtech/041600-2.shtml

    【讨论】:

    • 哇,感谢您的及时回复!这似乎是我的答案,但随后我可以看到 ASP.NET 缺少更好的 JSF bean 封装样式。
    • 您不需要将控件的视图状态存储在页面本身中。您可以添加使用数据库或其他此类服务器端存储机制的自定义视图状态提供程序。那可能更接近 JSF bean 风格。
    【解决方案2】:

    您可以使用ASP.NET Session State

    Session["FirstName"] = FirstNameTextBox.Text;
    Session["LastName"] = LastNameTextBox.Text;
    

    可以配置数据实际存储的位置(内存中、数据库中)。根据您的情况,最好将状态存储在视图中。在单个用户可能同时打开两个浏览器窗口并期望它们保持不同状态的任何情况下使用视图状态会更好,例如向导工作流中的当前阶段。

    【讨论】:

    • 请注意,该链接是一个关于该主题的好页面,它是“asp.net session”的第一个搜索结果。结果第一页上的其余链接看起来也不错。
    • 谢谢,我实际上认为(现在可以肯定)可以完成上述操作,但它不像 JSF 实现那样封装。
    猜你喜欢
    • 2016-11-18
    • 2011-02-03
    • 2013-03-15
    • 2011-09-18
    • 2011-01-06
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多