我将如何从javascript调用C#函数

本文关键字:调用 函数 javascript | 更新日期: 2023-09-27 17:56:48

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

但是当我尝试这样做时,该页面没有等待用户在重定向之前单击确定,因此使其毫无意义。

我将如何从javascript调用C#函数

您在服务器端和客户端代码之间感到困惑。 您提出的 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 将在客户端浏览器上运行。

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

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

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

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

重定向可以使用JavaScript window.location="myPage.aspx"self.location="myPage.aspx"来完成

清晰的表单可以使用JavaScript form.reset()

是的,它很简单:将回调函数放在文件中

之后,您应该绑定单击确定,您可以使用以下命令调用该函数: AJAX用任何JavaScript框架使简单

还行取消

$("#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 ...
       });
});

它只是比这简单

在Buttonclick上传递一个JavaScript函数,然后在.aspx页面中编写以下代码:

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

其他按钮也做类似的事情。