【发布时间】:2013-02-01 16:33:20
【问题描述】:
我试图弄清楚如何从 javascript 确认框中调用 C# 函数。即,如果用户选择“确定”,则调用一个函数,如果用户选择“取消”,则调用另一个函数。 所有代码都在后台,如下所示:
Response.Write(@"
<script language='javascript'>
var msg=confirm('Your new document has been created.\nPress OK to go there now, or Cancle to create another document.');
if (msg==true) {<%=redirect()%>;}
else {<%=clearForm()%>;}
</script>
");
protected void redirect(object sender, EventArgs e)
{
Response.Redirect("myPage.aspx");
}
protected void clearForm(object sender, EventArgs e)
{
//More code here//
}
请注意,Response.Redirect 中的所有代码都在一行中,为了简单起见,我在这里将其拆分!
无论如何,这不起作用,我找不到解决方案。我在if 声明中尝试了各种不同的东西
我的第一个想法是不给用户一个选项,而是简单地使用:
Response.Write(@"<script language='javascript'>alert('Your new document has been created.');</script>");
Response.Redirect("TaskPanel.aspx");
但是当我尝试这样做时,页面并没有等待用户在重定向之前单击“确定”,因此变得毫无意义。
【问题讨论】:
-
向服务器发送 JSON 请求以调用该函数。您的代码有几处问题。首先,您将 javascript 编写为一个字符串,这将变得越来越难以维护。其次,重定向和清除表单都可以在客户端通过javascript执行。
-
使用 ajax 和 web 服务
-
为了重定向和表单清晰,你不需要调用后面的代码,用简单的javascript来做。
-
我还应该注意到,当用户单击页面上的按钮时,会生成一个 SqlConnection 并将详细信息插入到一个表中,然后在
connection.Close();之后出现上面的代码。我不确定如何从 C# 调用 JavaScript。 -
更多解释你可以查看this
标签: c# javascript asp.net