gpt4 book ai didi

c# - 如何在没有控制问题的情况下停用 ViewState

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:25 26 4
gpt4 key购买 nike

我编写了一个 ASP.NET 应用程序,它在服务器的 IIS7 中运行。如果我在浏览器中打开此网络表单并向我显示站点代码,我会看到...

enter image description here

我有很多控件,如按钮、标签、文本框和 ListView。我尝试在 web.config 中停用 ViewState,但如果我停用它,我的应用程序将无法正常运行。我能做些什么?

最佳答案

仅停用不需要 View 状态的控件。

为此,您需要了解什么是 View 状态。

Viewstate 是页面保存和记住控件值的地方,以便在回发后拥有它们。请记住, View 状态在回发后使用。

所以实际上你有两倍相同的数据,但只有 View 状态回发了以前的数据,后面的代码可以使用该数据。

所以主要问题是,您需要哪些控件记住您填写的内容,或者哪些控件需要记住它们之前的状态。

让我们看一个带有 EnableViewState 打开和关闭的简单文字。

打开 View 状态

<asp:Literal runat="server" EnableViewState="true" ID="txtLiterar">

现在,如果您在此文字上放置文本,该文本也会保存在 View 状态和隐藏的代码中,您可以这样做。

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtLiterar.Text = "Hello There";
}
}

所以在回发之后文字仍然有它的内容,你可以避免再次填充它,因为 View 状态有它并自动再次填充它。

关闭 View 状态

<asp:Literal runat="server" EnableViewState="false" ID="txtLiterar">

现在,如果您在此文字上放置文本,则该文本不会保存在 View 状态和代码后面,您将其添加为。

protected void Page_Load(object sender, EventArgs e)
{
txtLiterar.Text = "Hello There";
}

所以不同之处在于您需要始终在每个帖子上用数据填充该控件。

最需要 View 状态的地方。

View 状态中最需要的部分是当您填充下拉列表时。您有一个数据绑定(bind),后面的代码需要记住将正确的值放在 SelectValue 上。

在 GridView 和其他类似控件上也需要它,因为在对数据进行分页时会保留上一页和其他信息。

因此,您可以关闭大多数控件的 View 状态 - 在那些控件上,您可以在每次回发时再次填充它们,在那些不需要记住以前状态的控件上。

更多阅读:
How to optimize class for viewstate
Determine size of ASP.NET page's viewstate before serving page
Limiting view state information on AJAX calls

关于c# - 如何在没有控制问题的情况下停用 ViewState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12086120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com