Jquery 如何访问ASP.NET变量以作为JSON字符串传递给支持WCF Ajax的服务

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

我有一个支持WCF AJAX的web服务,我试图用JSON将ASP.NET页面中的字段值传递给它,但我总是得不到任何东西。我想做一些类似于我们在ASP.NET web服务中所做的事情:

request.form(“SbID”).toString()

我的Web服务的参数为NULL,我认为这是因为我在表单中传递了什么。网络服务是:

[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 + '"}';