0

可能重复:
回发期间出现“由于对象的当前状态导致操作无效”错误

[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);



    }
4

1 回答 1

2

我猜是您的数据网格造成了麻烦,因为只有当您的表单中有超过 1000 个数据元素时才会发生该错误。微软于 2011 年添加了该限制,以解决拒绝服务漏洞。

可以在此处找到有关限制以及如何在需要时提高限制的更多信息。

于 2012-10-06T21:22:06.670 回答