Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#和Javascript_Javascript_C# 4.0 - Fatal编程技术网

C#和Javascript

C#和Javascript,javascript,c#-4.0,Javascript,C# 4.0,您可以使用以下方法: 一旦页面在客户端上呈现,这将调用重新加载javascript函数。您不能直接从C#code调用javascript代码。后者在服务器上运行以响应请求,前者在服务器完成处理并交付响应后在客户端上运行 正如@Darin Dimitrov在其示例中所示,您可以做的是确定在C#代码中何时将JavaScript函数传递给客户端,并设置何时执行。这通常发生在页面呈现时,可能会有短暂的延迟,以响应某种页面事件(例如按钮单击) 当然,这意味着在响应页面事件时,它必须通过回发来实现,而这可能

您可以使用以下方法:


一旦页面在客户端上呈现,这将调用
重新加载
javascript函数。

您不能直接从C#code调用javascript代码。后者在服务器上运行以响应请求,前者在服务器完成处理并交付响应后在客户端上运行

正如@Darin Dimitrov在其示例中所示,您可以做的是确定在C#代码中何时将JavaScript函数传递给客户端,并设置何时执行。这通常发生在页面呈现时,可能会有短暂的延迟,以响应某种页面事件(例如按钮单击)


当然,这意味着在响应页面事件时,它必须通过回发来实现,而这可能不是您想要的用户体验。您能否详细说明何时需要调用此方法?请记住,与页面交互和与服务器交互是两件截然不同的事情。所有的C#代码都是在JavaScript代码可用之前执行的。很可能您想做的是响应页面事件,并且应该完全在客户端用JavaScript完成,而不是从C#来完成。

您不能用当前的逻辑来完成,因为当您调用
response.Redirect
命令时,您发送到浏览器的任何JavaScript代码都将消失而无效

一种方法是让客户端的
reload
函数执行两个操作:在父窗口中加载不同的页面,并重定向当前窗口

重新加载的代码如下所示:

public void Button1_Click(Object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(
        GetType(), 
        "myscript", 
        "reload();", 
        true
    );
}
你的代码背后:

function reload() {
   window.parent.location.href = "loginPage.aspx";
   document.location.href = "/Logout.aspx";
}
(是的,达林给出的内容准确无误,恰到好处:))


你也可以考虑制作<代码>检查页> <代码>返回布尔值,当false,中止任何进一步的动作。< /p>但是我在一个不在按钮点击事件中的函数中使用它。请帮忙me@Daniel拉杰在什么职能?请出示你的密码。如果它在代码中,这个函数是如何触发的?如果您添加一个IsClientScriptBlockRegistered()检查,我将对这个进行表决。:)这种语言被称为“javascript”,而不是“java脚本”或“java”。(我已经更正了您的问题、标题和标记。)当您说“代码隐藏”时,您的意思是像servlet代码一样吗?C#code?private void checkpageaccess(){if((lpsContext)Session[“sessionfContext”]==null){I------------想在这里调用那个java脚本------Response.Redirect(@“~\Logout.aspx”);}否则{ErrorManager.Current.lpsContext=(lpsContext)会话[“sessionfContext”];}@丹尼尔·拉吉:你为什么要在那里调用JavaScript?它完成了什么?当你执行

响应时。在下一行重定向
,你是在向客户端指示它无论如何都应该启动一个全新的请求。为什么要告诉客户端转到一个页面,然后立即告诉他们转到另一个页面?我想他是这样想的nts是否在用户重定向后调用JavaScript函数?在这种情况下,在重定向之前设置一个会话变量。然后在注销的页面加载事件中,检查会话变量并按照Darin的回答注册启动脚本。他希望重定向父页面,这实际上只能通过客户端脚本完成。。
public void Button1_Click(Object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(
        GetType(), 
        "myscript", 
        "reload();", 
        true
    );
}
function reload() {
   window.parent.location.href = "loginPage.aspx";
   document.location.href = "/Logout.aspx";
}
if ((lpsContext)Session["sessionfContext"] == null)
    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "auto_reload", "reload();", true);
}