我将如何从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");
但是当我尝试这样做时,该页面没有等待用户在重定向之前单击确定,因此使其毫无意义。
您在服务器端和客户端代码之间感到困惑。 您提出的 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>
对其他按钮也做类似的事情。