之后'如果'条件在“警报”之前被调用c#中的消息

时间:2016-02-12 18:59:14

标签: c# asp.net

请原谅我的模糊描述

C#代码:

if(listCount <= minCountRequired)
{
    DisplayError(errMsgForLessCount); // Calls scriptmanager to display alert.
}

if(!ConfirmFromUser)  // asks for User confirmation to continue... getting called first  
{
     //perform some actions... not imp...
}

方法ConfirmFromUser

private bool ConfirmFromUser
{
    string confirmValue = Request.Form["confirm_value"];
    if(confirmValue == "Yes")
          return true;
    else
          return false;
}

问题:第二个&#39;如果&#39;在执行网页时首先调用条件。我不是指第二个内容,只是条件...... 第一个if条件中的语句执行的时间晚于第二个IF条件。

问题?问题是第一个使用Javascript来显示警报,而我们使用ScriptManager调用它,后者是Request.Form? 一致性问题???

1 个答案:

答案 0 :(得分:2)

您的C#代码正在按顺序执行。 ASP.NET服务器正在生成将在用户的Web浏览器中执行的JavaScript和HTML。它将生成输出的所有并将其发送到客户端。然后,客户端可以使用该数据执行任何操作。

因此,如果您的C#代码生成一些如下所示的输出:

<html><body><script>alert('hi')</script><b>Hello!

本文档的全部内容将发送给客户。客户端将收到整个文档,并开始执行它。这不是Pee-Wee的剧场 - C#和Web浏览器都不会因为输出中出现魔术词alert()而停止数据传输。

这是正在发生的事情的序列图。请注意,在客户端和服务器继续通信的中间没有任何部分 - HTTP中的,一旦请求结束,就是它!您必须发出另一个请求(例如,使用AJAX,表单) ,链接等)以获得更多数据到服务器。

Sequence diagram of the HTTP lifecycle