将数据发布到包含参数的url时,回发会导致白屏

时间:2012-08-22 14:30:15

标签: c# asp.net .net postback fatal-error

我在.net回发系统中遇到了意外的行为和/或错误。

我有一个页面,它使用母版页提供公共元素,表格输入在子页面和母版页之间分开。表单提交按钮位于母版页上,我试图在母版页上处理回发。

每当我尝试提交表单包含任何非空值的数据时,网址都包含参数,页面无法正确处理。如果页面是在任何条件下单独提交的,则不会发生这种情况。

表单回发方法是post。

页面无法加载,在firefox中返回no element found错误。

我已经检查了正确的类名ect,并且我在非表单元素中确实有空属性,但是当页面首先正确加载时我不认为这是相关的。我还检查了无限循环代码。

这是当前的回发处理代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        save_page();
    }

    page_render();
}

//save
private void save_page()
{
    dev_text.Text = "save in progress";
}

1 个答案:

答案 0 :(得分:0)

只有在将HTML发送到浏览器时才能在浏览器上看到在服务器上的HTML元素中设置文本。通常,一旦页面的整个处理完成,就会发生这种情况......通常在用户发起回发后很长一段时间。

不考虑在服务器上设置文本,而是考虑在提交时直接在浏览器上设置文本。有点像...

function setSavingText(){
   // Vanilla javascript...
   document.getElementById("<%=dev_text.ClientId%>").innerHTML = "save in progress";
   // JQuery...
   $("#<%=dev_text.ClientId%>").text("save in progress");
}

<asp:Button runat="server" ... OnClientClick="setSavingText();" />

上面的函数包含一个用于vanilla(普通)javascript的行和一个用于jQuery library的行。您只需一个