为什么这条线没有执行?

时间:2011-01-27 17:19:56

标签: c# asp.net

我正在ASP.Net和C#中保存一个表单。除了不显示保存后的消息外,每件事情都能正常工作。它在两者之间的某个地方迷路了,我无法理解为什么?

 protected void btnSave_Click(object sender, EventArgs e)
    {
        int fisherId;
        try
        {
            if (ValidateControls())
            {
                _traceLog.AppendLine("Fisheries Registration Form saving : btnSave_Click() ");
                FillDemographicsObjects();

                if(_manager.CreateFisherDemographics(_demographics, _address, "Test User",out fisherId))
                {
                   /*ShowMessage(IntertribalFishriesResource.msgSaveSuccess);*/

                    if (_shared.SendMailToFisher(fisherId))
                    {
                        _traceLog.AppendLine("Fisheries Registration Form ending : btnSave_Click() ");
                        Response.Redirect("~/Fisher/FisherRegistration.aspx?Id=" + fisherId, false);

                    }
                }

            }
        }
        catch (Exception ex)
        {
            _userException.CreateExceptionLog(ex);
        }
        finally
        {
            _userException.CreateTraceLog(_traceLog.ToString());

        }

    }

不执行以灰色文本显示的消息。 ShowMessage如下:

  protected bool ShowMessage(string message)
    {
        if (message.Length > 0)
        {
            hidErrMsg.Value = message;
           ScriptManager.RegisterStartupScript(upFisherRegistration, this.GetType(), "myScript", "ShowMessage();",true);
            return false;
        }
        return true;
    }

我想要实现的是,在成功保存操作后,我想显示消息并重定向页面。多数民众赞成。

2 个答案:

答案 0 :(得分:1)

邮件将发送到当前正在加载的页面上的客户端脚本。如果下一个子句为true,则重定向将导致另一个页面加载。因此无论发送到当前页面的任何内容都没有实际意义。

答案 1 :(得分:0)

HI,

当您添加RegsiterStartupScript时,它将针对当前的Request会话执行,如果您在其后重定向,它将被写入响应,因为您的消息不会显示,因为脚本在响应中不存在。

您需要做的是在重定向网址中添加另一个参数,例如& showSaveMessage = true 并在重定向页面上检查showSavemessage是否为true添加注册启动脚本方法。

我希望这会有所帮助