WCF就是web应用服务 它提供Javascript调用后台代码 目前这是我对WCF的认知 还有其他的话 请回帖告诉我好么~ 好了 正襟危坐 撩起袖子 开打~
新建一个WEB应用程序 命名为WATestWCF
然后为项目添加一个AJAX的WCF服务,再项目名字上右键->添加->新建项 选中“启用了AJAX的WCF服务”,如图
将文件名命名为PeopleSource.svc,点击添加,如果弹出一个错误对话框,提示未将对象引用,应该是添加此服务时VS先生成了代码而引用还没来得及给项目添加吧,反正后来运行没有错误,大家就直接忽略掉这个错误就好了。
在添加svc文件后,生成的svc文件如下图
VS会给项目的Web.config里将生成一段配置
这里的配置先不动他,我们先给我们添加的svc文件里添加几个代码,代码如下
namespace WATestWCF
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class PeopleSource
{
// 添加 [WebGet] 属性以使用 HTTP GET
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json,
RespOnseFormat= WebMessageFormat.Json, UriTemplate = "/DoWork")]
public UserInfo DoWork()
{
return new UserInfo
{
UserID = Guid.NewGuid().ToString(),
Name = "1"
};
}
[DataContract]
public class UserInfo
{
[DataMember]
public string UserID { get; set; }
[DataMember]
public string Name { get; set; }
}
}
}
现在我们改Web.config,将<enableWebScript/>这段换成<webHttp />。
到现在服务端的代码已经全部完成了~\( ̄▽ ̄)/
我们现在为项目添加一个jQuery.js(http://docs.jquery.com/Downloading_jQuery#Download_jQuery 这里提供了很多jQuery版本,此实例使用的是jquery-1.2.6)
将JS脚本引用进Default.aspx中,如果要用到传参最好把json2.js(http://www.json.org/json2.js)也下下来引用进去,好~开始写请求了~这是最后一步了~~代码如下:
<script type="text/Javascript">
$.ajax({//此格式请参照jQuery帮助文档
type: "POST", //一定要用POST,所以不用$.ajax方法的话就只能用$.post方法
url: "PeopleSource.svc/DoWork", //svc文件的路径/svc.cs中的UriTemplate值
dataType: "json",
success: function(obj) {
alert(obj.DoWorkResult.UserID);
}
});
script>
好了,运行看看~
接下来介绍两种传参方法
一.基本类型参数,比如string int bool之类的
将svc的DoWork方法将上参数
public UserInfo DoWork(string name, string id)
{
return new UserInfo
{
UserID = id,
Name = name
};
}
将Default.aspx中的Javascript代码改成
$.ajax({
type: "POST",
url: "PeopleSource.svc/DoWork",
contentType: 'application/json', //这个很重要,为什么这么写,我不知 = =!
dataType: "json",
data: '{"name":"123456","id":"456"}', //对应DoWork中的参数
success: function(obj) {
alert(obj.DoWorkResult.Name);
}
});
运行看看~~~
二.传送自己在服务端定义的数据类型
将svc的DoWork方法改成UserInfo类型的参数
public UserInfo DoWork(UserInfo a)
{
return new UserInfo
{
UserID = Guid.NewGuid().ToString(),
Name = a.Name
};
}
将Default.aspx中的Javascript代码改成
var pamar = { a: { UserID: '123456', Name: '456'} }; //a既为DoWork里的a
$.ajax({
type: "POST",
url: "PeopleSource.svc/DoWork",
contentType: 'application/json',
dataType: "json",
data: JSON.stringify(pamar), //要引用json2.js,自己转格式太麻烦了
success: function(obj) {
alert(obj.DoWorkResult.Name);
}
});
运行看看~~~
好了,本文介绍完毕~O(∩_∩)O~