来自PHP背景我喜欢使用干净的URL从一个服务获取数据到另一个服务.
但是,在我的一些ASP.NET项目中,我在URL中获得了可怕的ViewState参数.
有没有办法在全球范围内解决这个问题?
这会对我的ASP.NET应用程序产生什么影响?
您可以像这样关闭整个网站的viewstate:
也就是说,你不应该把它放在网址上.ViewState是一个隐藏字段,通过回发(通常使用post)发送到服务器.它在页面呈现给客户端时保持控件的状态,并在每次回发时发送它.如果它适用于应用程序,你可以切换到使用post(问题表单肯定是使用get),如果不看看Jon的答案.
有关viewstate如何适应asp.net生命周期的更多信息,请查看此链接:http://msdn.microsoft.com/en-us/library/ms972976.aspx.
在撰写信誉跟踪器时,我遇到了类似的问题.
我不知道你是如何在全球范围内做的,只是从不使用带有runat="server"
集合的表单,这更多地与纪律而不是设置有关.特别是,如果您runat="server"
在表单上设置了我相信您将始终获得一个viewstate参数,即使您已将其关闭,因此您没有获得任何值.无论如何,这是我的经验.
显然这对你有所限制,但我发现在ASP.NET的适当部分使用HTML服务器控件(而不是ASP.NET控件)可以让生活变得简单易懂.
默认情况下,使用
web.config中的元素关闭ViewState .使用EnableViewState="true"
的@Page
指令,一旦你禁用在web.config中的ViewState将不再工作.如果您稍后决定需要特定页面的ViewState,则可以使用
元素将其重新打开.
您需要对启用ViewState的页面使用的任何母版页执行相同操作.