2014-01-12 41 views
0

我刚开始学习ASP.Net。我试图弄清楚页面处理的原理。并且我收到了关于ViewState和Html Control的一些问题。ViewState和Html控制的新手问题

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

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

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

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

但我仍然无法弄清楚什么: ViewState是否保留“FirstName”的改变信息? Web控件就像在服务器上运行的HTML控件一样,它们都实现了接口IPostBackDataHandler,所以ViewState是没用的?

请帮我了解使用ViewState中或东西...的(我搞砸了...)

回答

0

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

希望这有助于 来源:< Link>

+0

很抱歉,但我觉得我的问题不是关于这一点,我想知道的东西,如何ViewState的作品和IPostBackDataHandler的说法,是这样吗?谢谢。 – LEOxiaoD