最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript调用ASP.NET服务器端方法的最简单的方法

来源:动视网 责编:小采 时间:2020-11-27 20:31:12
文档

JavaScript调用ASP.NET服务器端方法的最简单的方法

JavaScript调用ASP.NET服务器端方法的最简单的方法:对于这样的问题,有很多解决方法,如果你返回的内容是简单的内容,如注册用户时候的验证信息,只需返回存在与否,那么可以采用下面最最简单的代码实现:C# 代码<%@ Page Language="C#" %><!DOCTYPE html PUBLIC &
推荐度:
导读JavaScript调用ASP.NET服务器端方法的最简单的方法:对于这样的问题,有很多解决方法,如果你返回的内容是简单的内容,如注册用户时候的验证信息,只需返回存在与否,那么可以采用下面最最简单的代码实现:C# 代码<%@ Page Language="C#" %><!DOCTYPE html PUBLIC &


对于这样的问题,有很多解决方法,如果你返回的内容是简单的内容,如注册用户时候的验证信息,只需返回存在与否,那么可以采用下面最最简单的代码实现:

C# 代码
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
//测试方法1
public String GetSimpleMethod(String inputData)
{
//业务处理。
return "你输入的值:" + inputData;
}

protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["input"] != null)
{
Response.ClearContent();
Response.Write(GetSimpleMethod(Request.QueryString["input"]));
Response.End();
}
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
var textBox1 = "<%=TextBox1.ClientID %>";
function GetData() {
var t = document.getElementById(textBox1);
var h = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
h.open("GET", "<%=Request.FilePath %>?input=" + encodeURIComponent(t.value) + "&" + Date.parse(new Date()), true);
h.setRequestHeader("Connection", "close");
h.onreadystatechange = function() {
if (h.readyState == 4) {
if (h.status == 200) {
document.getElementById("info").innerHTML = h.responseText;
}
}
}
h.send(null);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="调用服务器方法 GetSimpleMethod" OnClientClick="GetData();return false;" />
<div id="info"></div>
</form>
</body>
</html>

对于需要返回复杂的对象,则需要对对象进行序列化等的处理,可以采取下面的简单方法。使用这个方法需要注意以下3点:
1,后台方法必须标记为 [System.Web.Services.WebMethod] 属性;
2,后台方法必须是 static 类型的静态方法;
3,ScriptManager 必须设置 EnablePageMethods="true"。

ASPX 代码
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
//测试方法1
[System.Web.Services.WebMethod]
public static String GetSimpleMethod(String inputData)
{
return "你输入的值:" + inputData;
}

//测试方法2
[System.Web.Services.WebMethod]
public static System.Collections.Generic.List<BlogUser> GetListObjectMethod(int inputData)
{
System.Collections.Generic.List<BlogUser> ulist = new System.Collections.Generic.List<BlogUser>();
System.Random r = new Random();
for (int i = 0; i < 6; i++)
{
BlogUser u = new BlogUser();
u.UserName = "孟宪会" + inputData.ToString();
u.Score = r.Next(0, 100);
ulist.Add(u);
}
return ulist;
}

//用于返回的测试类。
public class BlogUser
{
public String UserName { set; get; }
public Int32 Score { set; get; }
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
var textBox1 = "<%=TextBox1.ClientID %>";
function GetData1() {
PageMethods.GetSimpleMethod(document.getElementById(textBox1).value, OnSucceeded1, OnFailed);
}

function GetData2() {
PageMethods.GetListObjectMethod(document.getElementById(textBox1).value, OnSucceeded2, OnFailed);
}

function OnSucceeded1(result, userContext, methodName) {
alert(result)
}
function OnSucceeded2(result, userContext, methodName) {
alert(result)
var html = "<table border=1>";
for (var i = 0; i < result.length; i++) {
html += "<tr>";
html += "<td>" + result[i].UserName + "</td><td>" + result[i].Score + "</td>";
html += "</tr>";
}
html += "</table>";
document.getElementById("info").innerHTML = html;

}

function OnFailed(error, userContext, methodName) {
if (error !== null) {
alert("调用方法错误: " + error.get_message());
}
}
</script>

</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="调用服务器方法 GetSimpleMethod" OnClientClick="GetData1();return false;" />
<asp:Button ID="Button2" runat="server" Text="调用服务器方法 GetListObjectMethod" OnClientClick="GetData2();return false;" />
<div id="info"></div>
</form>
</body>
</html>

文档

JavaScript调用ASP.NET服务器端方法的最简单的方法

JavaScript调用ASP.NET服务器端方法的最简单的方法:对于这样的问题,有很多解决方法,如果你返回的内容是简单的内容,如注册用户时候的验证信息,只需返回存在与否,那么可以采用下面最最简单的代码实现:C# 代码<%@ Page Language="C#" %><!DOCTYPE html PUBLIC &
推荐度:
标签: 方法 js 简单的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top