C#Web窗体导航页面错误

时间:2017-09-10 22:03:13

标签: c# asp.net webforms

您好我已经尝试了几乎所有我在互联网上发现的关于" Cross Page Postback" .i成功转移到WebForm2但前一页始终为空,因此我无法从WebForm1接收任何数据。 这是我添加到我的WebForm1.aspx:

           <div>
           <asp:TextBox runat="server" ID="txttransferid" Visible="false"></asp:TextBox>
            <asp:Button ID="btntransfer" runat="server" PostBackUrl="~/WebForm2.aspx"/>
          </div>

以下是我添加到WebForm2.aspx中的内容:

         <%@ PreviousPageType VirtualPath="~/WebForm1.aspx" %>

以下是我添加到WebForm2.cs中的内容:

        protected void Page_Load(object sender, EventArgs e)
        {
            if (PreviousPage != null)
            {
               var id= ((TextBox)PreviousPage.FindControl("txttransferid")).Text;
            }
        }

这次我也尝试过使用异步PageLoad的Server.Transfer。

WebForm1.cs上的代码

            protected void btntransfer_Click(object sender, EventArgs e)
            {
              Server.Transfer("~/WebForm2.aspx");
            }

使用此WebForm2.cs代码:

          protected async void Page_Load(object sender, EventArgs e)
          {
              if (!Page.IsPostBack)
              {
                if (PreviousPage != null)
                {
                var id=((TextBox)PreviousPage.FindControl("txttransferid")).Text;
                }
                var response = await APIGetOrderDetails(Convert.ToInt32(id),1);
                DataSet ds = (DataSet)JsonConvert.DeserializeObject(response, 
                (typeof(DataSet)));
                OrderDetailGrid.DataSource = ds;
                OrderDetailGrid.DataBind();
              }
           }

使用Server.Transfer我成功转移到WebForm2并且前一页不是null所以我可以从WebForm1接收任何数据,但我总是立刻得到这个错误&#34; System.Web.HttpException:&#39;错误执行/WebForm1.aspx的子请求

InnerException&#34; InvalidOperationException:HttpServerUtility.Execute在等待异步操作完成时被阻塞。&#34;

最后,我试图在WebForm1上执行此操作:

         protected async void btntransfer_Click(object sender, EventArgs e)
         {
            await Task.Run(() => Server.Transfer("~/WebForm2.aspx"));
         }

错误消失但我想加载的网格从未加载。

请问任何想法?谢谢!

0 个答案:

没有答案