这个问题已经在这里有了答案:
已关闭8年。
[InvalidOperationException: Operation is not valid due to the current state of the object.]
System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +2420862
System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +58
System.Web.HttpRequest.FillInFormCollection() +159
[HttpException (0x80004005): The URL-encoded form data is not valid.]
System.Web.HttpRequest.FillInFormCollection() +217
System.Web.HttpRequest.get_Form() +104
System.Web.HttpRequest.get_HasForm() +9038959
System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97
System.Web.UI.Page.DeterminePostBackMode() +69
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +135
一次又一次地收到此错误
我的代码在后面! 取消按钮位于DATAGRID 内部
if (((System.Web.UI.WebControls.Button)e.CommandSource).CommandName == "Cancel")
{
string value = (e.Item.FindControl("txtStatDesc") as System.Web.UI.WebControls.Label).Text;
if (value.Equals("Sent", StringComparison.CurrentCultureIgnoreCase))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('You can not cancel the dta because it is in sent mode. Cancellation refused');", true);
}
else if (value.Equals("Prepared", StringComparison.CurrentCultureIgnoreCase))
Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('DEF');", true);
else
Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('xyz');", true);
}
最佳答案
我猜这是您的datagrid造成的麻烦,因为该错误仅在表单中有1000个以上的数据元素时才会发生。 Microsoft在2011年添加了此限制,以解决拒绝服务利用的问题。
有关限制以及如何根据需要提高限制的更多信息can be found here。
关于asp.net - 由于asp.net中对象的当前状态,因此操作无效。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12763932/