从PHP背景我喜欢使用干净的URL从一个服务数据抓取到另一个编辑。

然而,在一些我的ASP.NET项目,我得到可怕的ViewState参数我的网址。

有一种方法用来全局关闭这个功能?

什么影响将这种对我的ASP.NET应用程序?

有帮助吗?

解决方案

您可以关闭视图状态对于整个网站是这样的:

    <system.web>
<pages enableViewState="false" />

这是说,你不应该得到它的URL。视图状态是发送到服务器回传(其通常使用交)的隐藏字段。它使控件的状态下,当网页被呈现给客户,与每次回发发送。如果一切正常的应用程序,你可以切换到使用POST(问题的形式肯定使用get),如果不看看Jon的回答。

检查的视图状态如何融入asp.net生命周期此链接了解更多信息:的 http://msdn.microsoft.com/en-us/library/ms972976.aspx

其他提示

余书写时有类似的问题声望跟踪

我不知道你是怎么做到的全球其他比只是从来没有使用与runat="server"集,这是更多地与纪律比设定的形式。特别是,如果你已经runat="server"窗体上的设置,我相信你一定会得到一个视图状态参数,即使你把它关掉无所不在,所以你没有得到任何的的。这是我的经验,反正。

显然,这限制了你一些,但我发现,使用HTML服务器控件(而不是ASP.NET控件)用于ASP.NET的适当部位可以使生活变得更容易理解。

通过在web.config使用<page>元件关闭默认视图状态。在EnableViewState="true"指令使用@Page一旦你禁用在web.config中的ViewState将不再工作。如果以后决定,你需要一个特定页面的ViewState中,你可以使用<location>元素重新打开它只是该页面。

<configuration>
  <system.web>
    <pages enableViewState="false" />
  </system.web>

  <location path="MyFolder/MyPage.aspx">
    <system.web>
      <pages enableViewState="true" />
    </system.web>
  </location>
  <location path="Site.master">
    <system.web>
      <pages enableViewState="true" />
    </system.web>
  </location>
</configuration>

您需要做的,你的ViewState启用页面使用任何母版页一样的。

此添加到web.config文件:

<Pages enableViewState="false"/> 

您可以切换到ASP.Net MVC。从我的理解它不使用ViewState的。

做召回,然而,大多数的ASP.NET Web预计某些行为形成开发商不会没有ViewState的工作。视图状态的目的是提供各种页面和控制特性从一个请求到下一个持续的错觉。 ViewState中并不包含所有的控制性能,只是那些已经改变。这个想法是,因为它们是在时间最后呈现的形式的ViewState保留这些性能。

一个很好的例子是在一个下拉一个SelectedIndexChanged事件(一个不具有自动回发设置)。这工作,因为ViewState中保留了以前的索引,和形式职位目前的索引和控制,才能比较两个知道所选择的指标发生了变化。这时候,它引发了SelectedIndexChanged事件。如果没有ViewState中,该事件将不会触发。同样对于TextChanged事件等。

如果不考虑GET的情况(这是我从来没有遇到),与ViewState的大问题是使用它的地方是没有必要的。您的网格控件不需要保留其所有行的所有控件的以前的值,所以不要上启用ViewState中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top