2011-01-27 114 views
0

我在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; 
    } 

我想实现的是,成功的保存操作后,我想要显示消息和重定向页面。就这样。

+0

电子邮件是否被发送? – 2011-01-27 17:21:16

+0

除警告消息外,一切正常。即使我只在脚本管理器下提醒,它不会工作。 – 2011-01-27 17:22:14

回答

1

HI,

当您添加RegsiterStartupScript这会为当前请求的会话中执行,它会被写入响应,如果你以后重定向比不会显示你的消息,因为脚本不响应存在

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

我希望这可以帮助

1

该消息发送到当前正在加载的页面上的客户端脚本。如果下一个条款成立,重定向将导致另一个页面加载。所以发送到当前页面的内容都是没有意义的。