gpt4 book ai didi

c# - 如何使用 javascript 调用 ASP.NET c# 方法

转载 作者:IT王子 更新时间:2023-10-29 03:16:35 28 4
gpt4 key购买 nike

有谁知道如何使用 javascript 调用服务器端 c# 方法?如果选择取消,我需要做的是停止导入,如果选择确定,则继续导入。我使用 visual studio 2010 和 c# 作为我的编程语言

这是我的代码:

private void AlertWithConfirmation()            
{
Response.Write(
"<script type=\"text/javascript\">" +
"if (window.confirm('Import is currently in progress. Do you want to continue with importation? If yes choose OK, If no choose CANCEL')) {" +
"window.alert('Imports have been cancelled!');" +
"} else {" +
"window.alert('Imports are still in progress');" +
"}" +
"</script>");
}

最佳答案

PageMethod 一种更简单、更快速的 Asp.Net AJAX 方法通过释放 AJAX 的力量,我们可以轻松改善 Web 应用程序的用户体验和性能。在 AJAX 中我最喜欢的东西之一是 PageMethod。

PageMethod 是一种我们可以在 java 脚本中公开服务器端页面方法的方法。这带来了很多机会,我们可以在不使用缓慢且烦人的回发的情况下执行大量操作。

在这篇文章中,我将展示 ScriptManager 和 PageMethod 的基本用法。在此示例中,我正在创建一个用户注册表单,用户可以在其中使用他的电子邮件地址和密码进行注册。这是我要开发的页面的标记:

<body>
<form id="form1" runat="server">
<div>
<fieldset style="width: 200px;">
<asp:Label ID="lblEmailAddress" runat="server" Text="Email Address"></asp:Label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:Label ID="lblPassword" runat="server" Text="Password"></asp:Label>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</fieldset>
<div>
</div>
<asp:Button ID="btnCreateAccount" runat="server" Text="Signup" />
</div>
</form>
</body>
</html>

要设置页面方法,首先你必须在你的页面上拖一个脚本管理器。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>

另请注意,我更改了 EnablePageMethods="true"
这将告诉 ScriptManager 我要从客户端调用 PageMethods。

现在下一步是创建服务器端函数。
这是我创建的函数,这个函数验证用户的输入:

[WebMethod]
public static string RegisterUser(string email, string password)
{
string result = "Congratulations!!! your account has been created.";
if (email.Length == 0)//Zero length check
{
result = "Email Address cannot be blank";
}
else if (!email.Contains(".") || !email.Contains("@")) //some other basic checks
{
result = "Not a valid email address";
}
else if (!email.Contains(".") || !email.Contains("@")) //some other basic checks
{
result = "Not a valid email address";
}

else if (password.Length == 0)
{
result = "Password cannot be blank";
}
else if (password.Length < 5)
{
result = "Password cannot be less than 5 chars";
}

return result;
}

要告诉脚本管理器这个方法可以通过 javascript 访问,我们需要确保两件事:
第一:这个方法应该是“public static”。
其次:上面代码中写的方法上面应该有一个[WebMethod]标签。

现在我已经创建了创建帐户的服务器端函数。现在我们必须从客户端调用它。以下是我们如何从客户端调用该函数:

<script type="text/javascript">
function Signup() {
var email = document.getElementById('<%=txtEmail.ClientID %>').value;
var password = document.getElementById('<%=txtPassword.ClientID %>').value;

PageMethods.RegisterUser(email, password, onSucess, onError);

function onSucess(result) {
alert(result);
}

function onError(result) {
alert('Cannot process your request at the moment, please try later.');
}
}
</script>

为了调用我的服务器端方法注册用户,ScriptManager 生成一个在 PageMethods 中可用的代理函数。
我的服务器端函数有两个参数,即电子邮件和密码,在参数之后我们必须给出另外两个函数名称,如果方法成功执行(第一个参数即onSucess)或方法失败(第二个参数即结果)。

现在一切似乎都准备好了,现在我已经在我的注册按钮上添加了 OnClientClick="Signup();return false;"。所以这里是我的 aspx 页面的完整代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
<fieldset style="width: 200px;">
<asp:Label ID="lblEmailAddress" runat="server" Text="Email Address"></asp:Label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:Label ID="lblPassword" runat="server" Text="Password"></asp:Label>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</fieldset>
<div>
</div>
<asp:Button ID="btnCreateAccount" runat="server" Text="Signup" OnClientClick="Signup();return false;" />
</div>
</form>
</body>
</html>

<script type="text/javascript">
function Signup() {
var email = document.getElementById('<%=txtEmail.ClientID %>').value;
var password = document.getElementById('<%=txtPassword.ClientID %>').value;

PageMethods.RegisterUser(email, password, onSucess, onError);

function onSucess(result) {
alert(result);
}

function onError(result) {
alert('Cannot process your request at the moment, please try later.');
}
}
</script>

关于c# - 如何使用 javascript 调用 ASP.NET c# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7089760/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com