我怀疑是否可以将params作为数据传递给启用了ajax的WCF服务使用ajax调用这里是我的脚本代码
$(document).ready(function () {
$("#SendSms").click(function () {
var data = 'Muthu';
var text = JSON.stringify({ data: data });
debugger;
//data += '[0].Name=FromDate&[0].Value=' + 'Muthu';
//data += '&[1].Name=ToDate&[1].Value=' + 'Kumar';
//data += '&[2].Name=CustomerID&[2].Value=' + 'Ajit';
//data += '&[3].Name=Status&[3].Value=' + 'Arun';
$.ajax({
type: 'GET',
url: '*********/AjaxService.svc/DoWork',
dataType: "json",
data: text,
success: function (text) {
debugger;
$('#Panel').show();
$('#Panel').html(text.d);
},
error: function (jqXHR, textStatus, errorThrown) { alert(errorThrown); }
});
});
});
我的服务代码
[OperationContract]
//[WebInvoke (Method="POST")]
[WebGet]
public string DoWork(string text)
{
// Add your operation implementation here
//return Get.Select(o => new ClientIssueEntry { FormName=o,Description=o+1});
return text;
}
请帮我解决这个问题..
答案 0 :(得分:0)
将json变量的名称(data
)与C#方法参数名匹配;因此,要么在JS结束时将data
更改为text
,要么在C#结束时将text
更改为data
答案 1 :(得分:0)
$(document).ready(function () {
$("#SendSms").click(function () {
var data = 'Muthu';
var text = JSON.stringify({ text: data });
$.ajax({
type: 'GET',
url: '*********/AjaxService.svc/DoWork',
dataType: "json",
contentType: "application/json; charset=utf-8",
data: text,
success: function (text) {
debugger;
$('#Panel').show();
$('#Panel').html(text.d);
},
error: function (jqXHR, textStatus, errorThrown) { alert(errorThrown); }
});
});
});
[OperationContract]
[WebGet]
public string DoWork(string text)
{
// Add your operation implementation here
//return Get.Select(o => new ClientIssueEntry { FormName=o,Description=o+1});
return text;
}
答案 2 :(得分:0)
如果您正在执行GET操作,也只使用一个或两个非复杂参数,我建议使用 UriTemplate 。以下是基于您的代码的示例: -
界面: -
[ServiceContract]
public interface IAjaxService
{
[OperationContract]
[WebGet(UriTemplate = "DoWork?text={text}", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public string DoWork(string text);
}
实施
AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class IAjaxService : AjaxService
{
public string DoWork(string text)
{
// Do your work here.....
return text;
}
}
从你的javascript中调用这个: -
$(document).ready(function () {
$("#SendSms").click(function () {
var input = 'Muthu';
$.ajax({
type: 'GET',
url: "*********/AjaxService.svc/DoWork?text="+input,
dataType: "json",
success: function (responseData) {
//Do your work here ....
},
error: function (err1, err2, err3) { alert(err3); }
});
});
});
这绝对适合你。如果您需要帮助,请发布。