Jquery 如何访问ASP.NET变量以作为JSON字符串传递给支持WCF Ajax的服务
我有一个支持WCF AJAX的web服务,我试图用JSON将ASP.NET页面中的字段值传递给它,但我总是得不到任何东西。我想做一些类似于我们在ASP.NET web服务中所做的事情: request.form(“SbID”).toString() 我的Web服务的参数为NULL,我认为这是因为我在表单中传递了什么。网络服务是:Jquery 如何访问ASP.NET变量以作为JSON字符串传递给支持WCF Ajax的服务,jquery,asp.net,ajax,json,wcf,Jquery,Asp.net,Ajax,Json,Wcf,我有一个支持WCF AJAX的web服务,我试图用JSON将ASP.NET页面中的字段值传递给它,但我总是得不到任何东西。我想做一些类似于我们在ASP.NET web服务中所做的事情: request.form(“SbID”).toString() 我的Web服务的参数为NULL,我认为这是因为我在表单中传递了什么。网络服务是: [OperationContract] [WebGet] public ResultData GetContactsDataAndCou
[OperationContract]
[WebGet]
public ResultData GetContactsDataAndCountbyGUID(string requestGUID)
{
ResultData result = new ResultData();
common c = new common();
string request = String.Empty;
try
{
request = OperationContext.Current.RequestContext.RequestMessage.ToString();
}
catch (Exception ex)
{
}
try
{
List<CONTACT> listContacts = new List<CONTACT>();
DataSet ds = new DataSet();
ds = c.GetDataSet(requestGUID);
DataTable dt = new DataTable();
dt = ds.Tables[0];
// listContacts = CollectionHelper.ConvertTo<CONTACT>(dt);
listContacts = c.ConvertTo<CONTACT>(dt);
result.Data = listContacts;
result.Count = listContacts.Count;
}
[运营合同]
[WebGet]
public ResultData GetContactsDataAndCountbyGUID(字符串请求GUID)
{
结果数据结果=新结果数据();
公共c=新公共();
字符串请求=string.Empty;
尝试
{
request=OperationContext.Current.RequestContext.RequestMessage.ToString();
}
捕获(例外情况除外)
{
}
尝试
{
列表联系人=新列表();
数据集ds=新数据集();
ds=c.GetDataSet(requestGUID);
DataTable dt=新的DataTable();
dt=ds.表[0];
//listContacts=CollectionHelper.ConvertTo(dt);
listContacts=c.ConvertTo(dt);
结果。数据=列表联系人;
result.Count=listContacts.Count;
}
这是JavaScript/jQuery:
<script type="text/javascript">
//function DoUpdate(sbiId) {
// var input = '{"SbiId":"' + sbiId + '"}';
// var dataSource;
$(document).ready(function() {
**var input ='{"SbiId":"<%=guid %>"}';**
$.ajax({
url: "http://www.blah.com/services/testsService.svc/GetContactsDataAndCountbyGUID",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
dataType: "json",
success: function(data) {
var mtv = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
console.log(data);
mtv.set_dataSource(data.d.Data);
mtv.dataBind();
}
});
// }
});
</script>
//函数双更新(SBID){
//变量输入='{“sbid”:“'+sbid+''''''}';
//var数据源;
$(文档).ready(函数(){
**变量输入=“{”SBID:“}”**
$.ajax({
url:“http://www.blah.com/services/testsService.svc/GetContactsDataAndCountbyGUID",
键入:“获取”,
contentType:“应用程序/json;字符集=utf-8”,
数据:输入,
数据类型:“json”,
成功:功能(数据){
var mtv=$find(“”)。get_masterTableView();
控制台日志(数据);
mtv.set_数据源(data.d.data);
mtv.dataBind();
}
});
// }
});
我试图通过以下方式传递GUID的值,其形式为:
public string guid = null;
common c = new common();
protected void Page_Load(object sender, EventArgs e)
{
try
{
IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<AlphaHub>();
// common c = new common();
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
ApplicationUser user = userManager.FindByNameAsync(User.Identity.Name).Result;
string connectionId = c.GetCurrentConnection(user.RegistrationCode);
string request = "Contact" + " - " + connectionId + " - " + user.RegistrationCode;
string guid = c.recordDataRequest(user.RegistrationCode, request, connectionId, "out", "");
request = request + " - " + guid;
hubContext.Clients.Client(connectionId).CallForReport(request);
// hub
Thread.Sleep(1000);
}
公共字符串guid=null;
公共c=新公共();
受保护的无效页面加载(对象发送方、事件参数e)
{
尝试
{
IHubContext hubContext=GlobalHost.ConnectionManager.GetHubContext();
//公共c=新公共();
var userManager=newusermanager(newuserstore(newapplicationdbcontext());
ApplicationUser user=userManager.FindByNameAsync(user.Identity.Name).Result;
string connectionId=c.GetCurrentConnection(user.RegistrationCode);
string request=“Contact”+“-”+connectionId+“-”+user.RegistrationCode;
字符串guid=c.recordDataRequest(user.RegistrationCode,request,connectionId,“out”,“out”);
请求=请求+“-”+guid;
hubContext.Clients.Client(connectionId).CallForReport(请求);
//枢纽
睡眠(1000);
}
如何传入和检索此值?ASP.Net是无状态的,您将无法从代码中访问变量。 将其存储在一个隐藏变量中,您可以从jQuery访问该变量
<input type="hidden" id="hdnGuid" runat="server">
在jQuery中,您可以访问它:
var hdnGuid = $("#<%= hdnGuid.ClientID %>").val();
var input ='{"SbiId":"' + hdnGuid + '"}';
var hdnGuid=$(“#”)val();
变量输入='{“sbid”:“'+hdnGuid+'''“}”;
var hdnGuid = $("#<%= hdnGuid.ClientID %>").val();
var input ='{"SbiId":"' + hdnGuid + '"}';