首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从使用web (而不是MVC或asmx页面)的ajax帖子中获得c#服务器端上的复选框值?

如何从使用web (而不是MVC或asmx页面)的ajax帖子中获得c#服务器端上的复选框值?
EN

Stack Overflow用户
提问于 2015-01-05 00:08:51
回答 3查看 1.9K关注 0票数 0

好吧。我再试一次。我在这里没走多远。我对ajax和jQuery非常陌生。

甚至试图查看我是否可以在服务器上获得filerValues,但没有结果。此外,我不想使用asmx页面,所以我想我不能使用web方法。

我只是试图获得带有适当的选中值的post URL,以便在服务器上解析它。每次我选中一个复选框时,它都应该将所有选中的值发送到服务器。但是,我在获取URL时遇到了困难。filterValues应该包含一个查询字符串,比如name=value&name=value&name.当我运行开发人员的控制台时,它确实显示了在有效负载中。它确实发布了正确的数据。但是,当我测试是否可以在服务器上访问它时,它总是在ajax中命中错误函数。我使用的是web表单应用程序,不是MVC,也不是asmx页面。此外,我对ajax和他们的行为也很陌生。谢谢。

编辑:

我已经想出了解决办法。事实证明,我需要发布表单数据,而不是任何其他类型的有效负载。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-14 22:34:41

我已经想出了解决办法。事实证明,我需要发布表单数据,而不是任何其他类型的有效负载。

代码语言:javascript
运行
复制
$(function () {

                $("#chkFilter").on("click", "input", function (e) {
            var filterCheckboxes = new Array();
            $("#chkFilter").find("input:checked").each(function () {
                filterCheckboxes.push(" " + $(this).prop("name") + "=" + $(this).val() + ", ");
            });

            filterObj = {};
            filterObj.action = "updateProjects";
            filterObj.list = filterCheckboxes;
            var filtersStringify = JSON.stringify(filterObj)
            $.ajax({
                url: "/api/project/",
                type: "POST",
                data: filtersStringify,
            }).done(function (response) {
                //some stuff to do

            });
        });
    });
代码语言:javascript
运行
复制
 if (Request.HttpMethod == "POST")
    {            
        // get json out of body
        var serializer = new JsonSerializer();
        var sr = new StreamReader(Request.InputStream);
        var jtr = new JsonTextReader(sr);
        dynamic data = serializer.Deserialize(jtr);

        if (data.action == "getProjects")
        {
            getProjects(data);
        }
        if(data.action =="updateProjects")
        {
            updateProjects(data);

        }

    }
    else
    {

    }

}

public void getProjects(dynamic data)
{
  //do stuff with the data

}
票数 0
EN

Stack Overflow用户

发布于 2015-01-05 01:32:42

这个答案应该有帮助:https://stackoverflow.com/a/4508430/853295

下面是答案@Darin Dimitrov的副本

如果您想在经典WebForms应用程序中调用代码后面的方法,可以使用PageMethods

代码语言:javascript
运行
复制
[WebMethod]
public static string GetDate()
{
    return DateTime.Now.ToString();
}

然后调用该方法:

代码语言:javascript
运行
复制
$.ajax({
    type: 'POST',
    url: 'PageName.aspx/GetDate',
    data: '{ }',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(msg) {
        // Do something interesting here.
    }
});

下面是我给你们写的一个完整的例子:

将此方法添加到代码后面:

代码语言:javascript
运行
复制
    [WebMethod]
    public static string SayHello(List<string> names)
    {
        var str = "hello ";
        for (var i=0; i<names.Count; i++)            
        {
            str += (names[i] + ", ");
        }
        return str;
    }

将此添加到您的aspx文件中。

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
    <script type="text/javascript">
        var myArr = ["John", "Fred", "Sam"];
        $(function () {
            $.ajax({
                type: 'POST',
                url: 'test.aspx/sayhello',
                data: "{ 'names': " + JSON.stringify(myArr) + "}",
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (msg) {
                    // Notice that msg.d is used to retrieve the result object
                    alert(msg.d);
                }
            });
        });
    </script>
</head>
<body>
    <form id="Form1" runat="server">

    </form>
</body>
</html>

PageMethods不限于简单的参数类型。您可以使用任何类型作为输入和输出,它将自动被JSON序列化。

票数 0
EN

Stack Overflow用户

发布于 2015-01-05 01:51:17

使用ajax调用时应考虑点。

  1. url:页面名/函数名( AjaxSubmit )AjaxSubmit应该是静态的WebMethod
  2. 如果您想将任何参数传递给该WebMethod,那么参数名在两个文件中都应该是相同的。3.如果要将数组从客户端传递给该WebMethod,则Webmethod的参数将是列表
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27771773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档