【问题标题】:Rookie questions for ViewState and Html ControlViewState 和 Html Control 的菜鸟问题
【发布时间】:2014-01-12 16:58:57
【问题描述】:

我刚刚开始了解 ASP.Net。我试图弄清楚页面处理的原理。还有一些关于 ViewState 和 Html Control 的问题。

<input type="text" id="FirstName" />
<br />
<input type="text" id="LastName" runat="server" />

这是我的 HTML。我填写了两个文本框,然后单击提交。在服务器上运行的控件保留该值,而另一个则没有。

查看HtmlInputText类,发现它实现了IPostBackDataHandler接口,所以不会受ViewState的影响? (我是通过某人的博客知道的,是吗?)

我对 ViewState 的想法是保持每个控件不断变化的消息。页面中的控件将根据默认设置和 ViewState 进行初始化。

但我还是想不通: ViewState 是否保留“FirstName”的更改消息?就像Web Control或者运行在服务端的HTML Control一样,都实现了IPostBackDataHandler接口,所以ViewState没用?

请帮我理解 ViewState 的使用什么的……(我搞砸了……)

【问题讨论】:

    标签: c# html asp.net


    【解决方案1】:

    ViewPage 继承自 Page 类。所以它是一个“WebForm”,它有一个代码隐藏,所以你基本上可以直接请求页面。如果你使用一个会执行正常回发的控件,就会发生回发,在这种情况下你已经添加了 WebForm 行为,这不是我们应该做的(混合它们),你应该确保而是执行控制器。在最终版本中会有一些控件不会执行“回发”,而是确保执行 Action 方法。您无法从控制器访问 ViewState,因此它不会在控制器级别上。如果您有一个使用 ViewState 的控件,并按下将确保执行 Action 方法的“按钮”或“链接”,则不会发布 ViewState,在这种情况下,当控件从 ViewState 获取数据时,它是空的。因此,如果需要 ViewState,控件将无法工作。

    希望这会有所帮助 来源:Link>

    【讨论】:

    • 对不起,但我认为我的问题不是关于这个,我想知道 ViewState 是如何工作的以及 IPostBackDataHandler 的声明,对吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多