我正在尝试将字符串传递给我的背后代码,但是它始终为null。

$.ajax({
   type: "POST",
   url: "Search.aspx?do=SearchText",
   data: {searchText: searchText },
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: fnsuccesscallback,
   error: fnerrorcallback
});



protected void Page_Load(object sender, EventArgs e)
 {
    if (Request["do"] != null && Request["do"] == "SearchText")
    {
       string result = Search.searchText(Request["searchText"]);
    }
 }


我的Request [“ searchText”]始终为null。

编辑:



public void DoSearch(string SearchText)
{
    string result = Search.searchText(SearchText);
}


并在ajax帖子中:

 url: "Search.aspx/DoSearch",
 data: { searchText: searchText },

最佳答案

好的,我已经建立了一个对我有用的基本测试。

                var myString = 'Test';

                $.ajax({
                    type: "POST",
                    url: "SearchTest.aspx/DoSearch",
                    data: '{"searchText":"' + myString + '"}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: fnsuccesscallback,
                    error: fnerrorcallback
                });


        function fnsuccesscallback() {

        }

        function fnerrorcallback() {

        }


//记住web方法进入了SearchTest.aspx页面后面的代码中

        [WebMethod]
        public static void DoSearch(String searchText)
        {
            //Do your stuff!!
        }


记住要导入名称空间... using System.Web.Services;

希望这对你有用

关于c# - ajax参数始终为null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25118652/

10-11 08:08