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

有谁知道如何使用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访问,我们需要确保两件事:

第一:该方法应为“公共静态”。

第二:在上面的代码中编写的方法上方应该有一个[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>

以上是 如何使用javascript调用ASP.NET c#方法 的全部内容, 来源链接: utcz.com/qa/398829.html

回到顶部