在Webmethod中获取Request.Form值

时间:2013-12-27 08:39:44

标签: asp.net

我使用webmethod,并在那

我使用Request.form,

从输入文本框中使用want值

如何使用Ajax post

在WebMethod中获取表单输入值

我的问题是,我将一些输入作为参数传递给webmethod,但是希望使用Request.Form检索其他参数,但我在变量中得到空白

我使用runat =“server”作为输入类型=“文字”

我试过了

string setrname = HttpContext.Current.Request.Form["selectroomname"];

但是这个为空

建议 maulik

2 个答案:

答案 0 :(得分:1)

处理下面的代码并告诉我你输出的内容:

int v = HttpContext.Current.Request.Form.Keys.Count;
        string var = "";
        string[] name1 = HttpContext.Current.Request.Form.AllKeys;
        if(name1 != null)
        {
        foreach (string name in name1)
        {
            if (name != null)
            {
                var = var + "[" + name.Trim() + "]-" + HttpContext.Current.Request.Form[name].ToString().Trim();
                var = var + "---";
               //store it and compare according to your value--selectroomname 
            }
        }

答案 1 :(得分:0)

我假设您的WebMethod如下所示

[WebMethod]
public static string MyWebMethod(..

您无法在静态方法中访问Page控件,即TextBox和其他控件,因为它们是非静态的。

你应该在你的ajax中传递来自客户端本身的TextBox的值,即

   var url='/Default.aspx/MyWebMethod';
   var value = document.getElementById('textBoxId').value;
   var data={myField:value};
   makeAjaxRequest(url,data,callback);
   function callback(data){
      ///this is where you recieve ajax success
   }

其中makeAjaxRequest是对ajax发送函数的简单包装,类似于

 <script type="text/javascript">
        function makeAjaxRequest(url,data,callback) {
            $.ajax({
                type: 'POST',
                url: url,
                data: data,
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: callback
            });
        }
    </script>