您的位置:首页 > Web前端 > JavaScript

C# javascript 对象转换(Eval 函数)

2011-07-28 13:13 633 查看
这之中使用了以前一些js调用服务器端脚本代码。
页面代码:如下
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>

<script type="text/javascript" language="javascript">

var xmlHttp;

//创建XMLHTTP对象,判断浏览器是IE还是其他浏览器
function createXMLHttp()
{ //IE
if(window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHttp");
}
//其他遵循W3C标注的浏览器
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
}

function getBook()
{

//调用createXMLHttp创建xmlHttp对象
xmlHttp=createXMLHttp();
//默认使用异步回发状态是TRUE,此时与服务器通讯有5状态
xmlHttp.onreadystatechange=changeState;
//通过GET方法发送请求道服务器 读取Books.xml数据,这里采用的是相对路径
xmlHttp.open("GET","default.aspx",true)
//在使用GET方法的时候.send方法法的数据类型为NULL ,具体参见Http通讯协议
xmlHttp.send(null);
}
//在与服务器通讯过程中的5种状态
function changeState()
{
if(xmlHttp.readyState==4) //当xmlHttp.readyState=4的时候说明通信完毕,
{
if(xmlHttp.status==200)//虽然通讯完毕,但是还要考虑 请求的服务器页面是否存在,xmlHttp.status=200表示OK了 页面存在
{
ShowInfo();
}
}
}
function ShowInfo()
{
//将json字符转换成json对象使用JS的内置对象eval函数
var info= eval('('+xmlHttp.responseText+')');
var len=info.length;
var div= document.getElementById("showInfo");
var td="";
for(var i=0;i<len;i++)
{
td +="<tr><td>"+info[i].EmployeeID+"</td><td>"+info[i].EmployeeName+"</td><td>"+info[i].EmployeeInfo+"</td></tr>"

}
div.innerHTML="<table class='vtable'>"
+"<tr><td>用户ID</td><td>用户名</td><td>用户信息</td></tr>"
+td
+"</table>";
}
</script>
<style>
.vtable{border-collapse:collapse;border:none;}
.vtable td {border:solid #090 1px;}
</style>
</head>
<body>
<form id="form1" runat="server" >
<div id="showInfo" >
</div>
<script>
getBook();
</script>
</form>
</body>
</html>

以下是服务器端代码
主要调用了 一下两个方法。
public class Employee
{
private string[] employeeInfo;

public int EmployeeID;
public string EmployeeName;
public string[] EmployeeInfo
{
get { return this.employeeInfo; }
set { this.employeeInfo = value;}
}
}
//获取JSON的方法主要是使用了using Newtonsoft.Json;命名空间中的JavaScriptConvert.SerializeObject();方法
public string ToJSONString(int employeeID, string employeeName, string[] employeeInfo)
{
Employee employee = new Employee();
employee.EmployeeID = employeeID;
employee.EmployeeName = employeeName;
employee.EmployeeInfo = employeeInfo;
//为了写两个对象,多写了一个实例
Employee employee1 = new Employee();
employee1.EmployeeID = employeeID;
employee1.EmployeeName = employeeName;
employee1.EmployeeInfo = employeeInfo;
IList<Employee> list=new List<Employee>();
list.Add(employee);
list.Add(employee1);

return JavaScriptConvert.SerializeObject(list);
}

Defalut.aspx页面中 pageload下面 做了如下操作
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//这里主要是原JSON.net 使用了一个webserverice调用了相关方法,这方面根据个人需要可以自行修改。
MyServ.WebService MyWebServ = new MyServ.WebService();
string[] info = new string[] { "爱牛牛","12313","风动" };
string employeeJSON = MyWebServ.ToJSONString(12, "大熊", info);
Response.Write(employeeJSON);
Response.End();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: