ViewStateMode vs EnableViewState

时间:2011-06-24 14:42:47

标签: c# asp.net

有什么区别:

  • ViewStateMode:Disabled / Enabled / Inherit
  • EnableViewState:True / False

它位于asp.net控件的属性中。

感谢您的解释。

5 个答案:

答案 0 :(得分:32)

修改

ViewStateMode

  • 已启用 - 为此控件启用ViewState On
  • 已禁用 - 为此控件关闭ViewState
  • 继承 - 从父控件的值继承

的EnableViewState

  • 覆盖ViewStateMode,对于ViewStateMode必须为true才有意义。

请参阅:Minimizing viewstate- confused by `EnableViewState` and `ViewStateMode` in asp.net 4.0

<强> ORIGINAL

Understanding ASP.NET View State

  

获取或设置一个值,该值指示服务器控件是否将其视图状态及其包含的任何子控件的视图状态持久保存到请求客户端。 Control.EnableViewState Property

     

即使为页面禁用了视图状态,也可以使用ViewStateMode属性为单个控件启用视图状态。有关视图状态和控件状态的更多信息,请参阅EnableViewState属性。   Control.ViewStateMode Property

答案 1 :(得分:7)

该组合允许您为整个页面关闭ViewState,但为其中包含的特定控件启用它。

  

禁用页面的视图状态   启用它以进行特定控制   在该页面中,设置EnableViewState   页面和控件的属性   为true,设置ViewStateMode   页面的属性为Disabled,和   设置的ViewStateMode属性   控制到启用。

     

ViewStateMode的默认值   页面的属性已启用。该   ViewStateMode的默认值   一个Web服务器控件的属性   页面是继承。结果,如果你   不要在此处设置此属性   页面或控件级别,值   EnableViewState属性的   确定视图状态行为。

来自Control.ViewStateMode Property

答案 2 :(得分:1)

直到ASP.NET 3.5版本,页面级别视图状态控件属性(EnableViewState)视为最高优先级,表示控件级别属性是True还是False它不会更改它看到页面级别属性的行为。 但是在ASP.NET 4版本中,使用了具有值

的新属性ViewStateMode

1.Disabled - 将禁用该页面或控件的视图状态(即,如果页面级别属性已禁用且控制级别属性已启用,则视图状态将适用于之前使用EnableViewState的控件)。

2.Enable - 将启用该页面或控件的视图状态(即,如果页面级别属性已启用且控制级别属性已禁用,则视图状态将不起作用以进行控制)。

3.Inherit - 将继承页面控制属性的属性。

答案 3 :(得分:0)

ViewStateMode用于更改将页面或控件的EnableViewState设置为true的结果行为。

参考Control.ViewStateMode Property

  

页面的ViewStateMode属性   或控件只有在有效时才有效   EnableViewState属性设置为   真正。如果是EnableViewState属性   设置为false,视图状态为   即使是ViewStateMode也关闭了   property设置为Enabled。

     

ViewStateMode的默认值   页面的属性已启用。该   ViewStateMode的默认值   一个Web服务器控件的属性   页面是继承。结果,如果你   不要在此处设置此属性   页面或控件级别,值   EnableViewState属性的   确定视图状态行为。

     

您可以使用ViewStateMode属性   为个人启用视图状态   即使视图状态被禁用也可以控制   对于页面。欲获得更多信息   关于视图状态和控制状态,   请参阅EnableViewState属性。

     

禁用页面的视图状态   启用它以进行特定控制   在该页面中,设置EnableViewState   页面和控件的属性   为true,设置ViewStateMode   页面的属性为Disabled,和   设置的ViewStateMode属性   控制到启用。

答案 4 :(得分:0)

这是一篇非常实用的文章,其中包含一个简单的详细示例ASP.Net View State: EnableViewState vs ViewStateMode。它的要点是:

  

ViewStateMode属性允许您在父级禁用视图状态   级别并在子级别选择性地启用它。

     

EnableViewState属性不允许这样做。

     

这两个属性都允许您在父级启用视图状态   级别并在子级别禁用它。