使用 JSON 将用户定义的对象从 jQuery 传递到 ASP.NET Webmethod

2024-04-08

我正在尝试将一些简单的 JSON 从 jQuery 传递到 ASP.NET 4.5 Webmethod。它并没有按照我想要的方式工作。如果我接受输入作为单独的参数,它就会起作用:

[WebMethod]
public static Address GetJSonAddress(string name, string street)

但如果我尝试将它作为一个对象,它就不起作用,传入的内容只是 null:

[WebMethod]
public static Address GetJSonAddress(Address newAddress)

我尝试过使用 DataContractJsonSerializer 的 Webmethods、Pagemethods、WCF...什么也没有。 Address 类用 Datamember/DataContract 进行适当的修饰。属性匹配,包括大小写。

在 jQuery 中,我尝试了所有传递数据的方式,包括将其包装在 Address 对象中...如果我以任何其他方式执行此操作,则不会调用 Webmethod,并且收到错误 500:

Save2 = function () {
var address = { prefix: GLOBALS.curr_prefix };

$('input[id^=' + GLOBALS.curr_prefix + '],select[id^=' + GLOBALS.curr_prefix + ']').each(function () {
       address[this.id.substr(4)] = $.trim($(this).val());
})

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "/WebServices/Insert",
    data: JSON.stringify(address),
    dataType: "json",
    success: function (data, textStatus) {
        console.log(data, textStatus);
    },
    failure: function (errMsg) {
        MsgDialog(errMsg);
    }
});
}

最终我将不得不使用 121 个输入字符串来完成此操作,并且真的不希望有一个具有 121 个参数的方法。任何帮助表示赞赏。


我很快就建立了这个项目,并且能够成功调用我的网络方法,请相应地调整您的代码。确保您的类属性名称相同作为您通过 JavaScript 传递的内容。

网络服务

    public static Contact getContact(Contact cnt)
    {
        cnt.name = "Abijeet Patro";
        cnt.phone = "Blah Blah";
        return cnt;
    }

JavaScript/jQuery

    $(document).ready(function () {
        var cnt = {name:'Hello',phone:'Hello'};
        $.ajax({
            type: "POST",
            url: "/Default.aspx/getContact",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: JSON.stringify({'cnt':cnt}), // Check this call.
            success: function (data) {
                debugger;
            }
        });
    });

Class

public class Contact
{
    public string name { get; set; }
    public string phone { get; set; }
}


您可以从以下位置获取该项目here https://github.com/Abijeet/blog-projects/tree/master/JsonBasedWebMethod。另外请使用 fiddler 或 Chrome 来监控 AJAX 请求/响应。我添加了一个图像来展示如何使用 Chrome 监控 AJAX 请求。 Fiddler 甚至更好、更详细。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JSON 将用户定义的对象从 jQuery 传递到 ASP.NET Webmethod 的相关文章

  • 迭代嵌套的 firebase 对象 - Javascript

    如何迭代嵌套的 firebase 对象 Publications Folder1 hdgjg76675e6r Name Author hdgjdsf3275e6k hd345454575e6f Folder2
  • jq - 按值排序

    我有以下结构 ID XX guid 1 ID YY guid 2 我尝试过运行 jq sort by guid conn json 但是我收到一个错误 Cannot index string with string guid 请您告诉我如何
  • C# 代码上的 ImageURL 不显示图像

    我在 aspx 页面上有图像
  • 防止 ASP.Net 中的表单重新提交(不重定向到我自己)

    我有一个带有表单元素的母版页
  • 粘表行

    我正在尝试实现一个像 iOS 那样的日历列表视图 基本上 我现在正在做的就是循环遍历我的事件数组 如果是新日期 则打印日期标题 否则打印日历事件 我想让日期标题行保持粘性 直到它们 滚动走 我怎样才能做到这一点 我看到很多关于粘性标题的示例
  • 数据表:根据列中的值过滤行

    我需要从数据表中过滤掉列中不包含特定值的行 例如 对于下面的数据 我只想显示 type Dog 的结果 table tr th Type th th Breed th th Owner th tr tr td Dog td td Dober
  • ASP.NET Web Api 2 中的异常处理

    Problem 我需要处理 Web api 2 异常并返回一个具有正确状态代码的丰富对象 401 表示未经授权 404 表示 ContentNotFound 等 以及一些额外信息作为内容 此外 我需要内容看起来像序列化的Exception对
  • 将 Repeater Container.ItemIndex 传递给 Javascript 函数

    在 C Asp Net 中 我需要将中继器出现索引传递到 Javascript 函数中OnClientClick从 ASP 按钮按下 这是我的代码
  • PostgreSQL:有效地将 JSON 数组拆分为行

    我有一个表 表 A 其中包含一个包含 JSON 编码数据的文本列 JSON 数据始终是一个包含一到几千个普通对象的数组 我有另一个表 表 B 其中有几列 包括数据类型为 JSON 的列 我想从表 A 中选择所有行 将 json 数组拆分为其
  • 将类转换为 JSONObject

    我有好几堂这样的课 我想将类转换为 JSONObject 格式 import java io Serializable import com google gson annotations SerializedName public cla
  • 发布数据时维护 ViewBag 值

    我有一个逻辑问题需要回答 这是一个场景 在控制器中 ViewBag Name aaaa 在视野中 ViewBag Name 在我的控制器中 我为 ViewBag 设置了值 并从 VIew 中的 ViewBag 检索了值 现在在 View 中
  • 使用 Spring / JPA 写入 Postgres 数据库的 JSON 列

    我有一个名为 test 的表 其中包含 Postgres 9 3 中 json 类型的列 sample column 我正在尝试使用 Spring JPA 将以下内容写入列中 name 更新的名称 我在其他帖子中读到 我需要添加自定义转换器
  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • Spark DataFrame 序列化为无效 json

    TL DR 当我倾倒 Spark 时DataFrame作为 json 我总是得到类似的结果 key1 v11 key2 v21 key1 v12 key2 v22 key1 v13 key2 v23 这是无效的 json 我可以手动编辑转储
  • 如何使用 Jersey 将嵌套列表封送为 JSON?我得到一个空数组或一个包含数组的单元素字典数组

    我正在开发一个使用 Jersey 将对象转换为 JSON 的项目 我希望能够写出嵌套列表 如下所示 data one two three a b c 我想要转换的对象首先将数据表示为 gt gt 我认为 Jersey 会做正确的事情 以上输
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • iPhone 点击时使 div 变暗

    当您的 div 附加了点击处理程序时 当点击该 div 时 iPhone 会使该 div 变暗 作为点击指示器 示例 在移动 Safari 上查看http jsbin com awejo3 4 http jsbin com awejo3 4
  • 如何在具有现有记录的 json 数据表顶部添加新行

    我试图在数据表顶部添加一行 显示 金额 列的总和 我正在使用 json 数据表 jquery 插件 列表来显示数据表 如何将此行与现有行一起添加到数据表顶部 我认为这段代码会对你有所帮助 var json uid user123 first
  • 检查 JSON 模式中不同的嵌套属性

    有没有办法在嵌套 JSON 模式中实现相当于 CHECK 约束的 Postgres 假设我们有具有两个属性的数据 每个属性都有嵌套属性 JSON Schema 如何使第一个对象所需的内容依赖于第二个对象 我的真实案例场景是为 GeoJSON

随机推荐