我在WCF服务中将值传递给数组元素。我在这里使用jQuery。
我的职能是:
在Service.cs中:
public class User
{
Dictionary<int, string> users = null;
public User()
{
users = new Dictionary<int, string>();
users.Add(1, "apple");
users.Add(2, "orange");
users.Add(3, "lemon");
users.Add(4, "grape");
}
public string[] GetUser(int Id)
{
var user = from u in users
where u.Key == Id
select u.Value;
return user.ToArray<string>();
}
在jQuery中:
function CallService() {
$.ajax({
type: Type,
url: Url,
data: Data,
contentType: ContentType,
dataType: DataType,
processdata: ProcessData,
success: function(msg) {
ServiceSucceeded(msg);
},
error: ServiceFailed
});
}
我的第一个函数我这样声明:
function WCFJSON() {
var uesrid = "2";
Type = "POST";
Url = "Service.svc/GetUser";
Data = '{"Id": "' + uesrid + '"}';
ContentType = "application/json; charset=utf-8";
DataType = "json"; ProcessData = true;
CallService();
}
这个函数我打电话如下:
$(document).ready(
function() {
WCFJSON();
}
);
我的第二个功能是:
function temp()
{
//var id=parseInt($('#txtinput').val();
var id="5";
Type="POST";
Url="Srvice.svc/GetUser";
Data='{"Id":"'+id+'"}';
ContentType="application/json;charset=utf-8";
DataType="json";ProcessData=true;
CallService();
}
我通过按钮onclient click调用了这个函数,如下所示:
<asp:Button ID="btnsumbit" runat="server" Text="submit" OnClientClick ="temp();" />
我的问题是当我运行这个程序时,我只得到了第一个函数(“WCFJSON();”)的结果,其他函数是“temp();”我没有得到任何结果。我不知道我错过了什么?任何人都可以解决这个问题吗?
答案 0 :(得分:0)
数据='{“Id”:“'+ uesrid +'”}';
应该是:
Data = {"Id": uesrid};
这应该是一个对象,$.ajax
将序列化它。
在temp()中,更改:
Data='{"Id":"'+id+'"}';
为:
Data={"Id": id };