0

我试图弄清楚如何从 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");

但是当我尝试这个时,页面并没有等待用户在重定向之前单击“确定”,因此它变得毫无意义。

4

3 回答 3

3

您对服务器端代码和客户端代码感到困惑。您提交的 C# 代码将在您的服务器上运行,并在页面上写出 JavaScript 代码:

<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>

您编写的 JavaScript 将在客户端浏览器上运行。

<%=redirect()%>;但是,我想你会收到一个 JavaScript 错误,因为它会尝试写出<%=clearForm()%>;应该在服务器端运行的 ASPX scriptlet 代码(但实际上在客户端的 JavaScript 中显示为字符串) .

这只是对为什么不能直接从 JavaScript 调用 C# 函数的解释/答案。

对于您的具体问题,您无需回调服务器来执行重定向或清除表单。

这两者都可以在 JavaScript 中完成。

重定向可以使用 JavaScriptwindow.location="myPage.aspx"self.location="myPage.aspx"

清晰的表格可以用 JavaScript 完成 form.reset()

于 2013-01-31T20:52:21.243 回答
1

是的,它很简单:把你的回调函数放在一个文件中

之后你应该绑定点击OK你调用函数:AJAX with any javascript Framework 使简单

确定 取消

$("#OK,#Cancel").click(function(){

 var whichFct = $(this).attr('fct');      var urlToFile = "web/app/link/fct/1";
 if(whichFct == 2)  urlToFile = "web/app/link/fct/2"

   $.post(urlToFile,function() {
            //do sthlike hiding the form ...
       });
});

它只是比这简单

于 2013-01-31T21:06:36.903 回答
0

pass a javascript function on buttonclick.. then write following code in .aspx page:

<script language='javascript'>
function func_name()
{
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>

do similarly for other button as well.

于 2013-02-01T08:33:20.137 回答