请原谅我的模糊描述
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? 一致性问题???
答案 0 :(得分:2)
您的C#代码正在按顺序执行。 ASP.NET服务器正在生成将在用户的Web浏览器中执行的JavaScript和HTML。它将生成输出的所有并将其发送到客户端。然后,客户端可以使用该数据执行任何操作。
因此,如果您的C#代码生成一些如下所示的输出:
<html><body><script>alert('hi')</script><b>Hello!
本文档的全部内容将发送给客户。客户端将收到整个文档,并开始执行它。这不是Pee-Wee的剧场 - C#和Web浏览器都不会因为输出中出现魔术词alert()
而停止数据传输。
这是正在发生的事情的序列图。请注意,在客户端和服务器继续通信的中间没有任何部分 - HTTP中的,一旦请求结束,就是它!您必须发出另一个请求(例如,使用AJAX,表单) ,链接等)以获得更多数据到服务器。