aspx页面中的Webmethod接收并返回JSON字符串,如何实现?

发布于 2024-11-05 06:09:24 字数 895 浏览 4 评论 0原文

我一直在尝试使用 jquery ajax 并发现以下内容:

如果我有一个 webmethod,在 aspx 页面而不是服务中,看起来像这样:

   [System.Web.Services.WebMethod]  
    public static List<Person> SearchSrf(SearchCriteria search)
    {
        List<Person> people = new List<Person>();
         //add persons to the list etc.
        return people ;
    }

和 javascript 看起来像这样:

     var objSearch = new Object();
     object [FirstName] = 'Joe'
     //etc
    var DTO = { 'search': objSearch };
     then in my ajax call I set data: JSON.stringify(DTO)
  1. 如果我通过 jquery ajax 传递将数据发送到该方法在 javascript 中创建的对象,其属性与我的搜索对象相匹配,并且名称为 search .net,成功将该 JSON 字符串反序列化为搜索对象。
  2. 当我返回列表时,它也会将其序列化为 JSON 字符串。

我的问题是如何/为什么会发生这种情况?我知道在我的 ajax 调用中我将 dataType 设置为 json,但是 .net 如何理解这一点,而不需要对方法或其他配置进行任何修饰以使其知道格式。

如何/为什么返回列表序列化为 JSON 字符串而没有任何提示?

I have been experimenting with jquery ajax and discovered the following things:

If I have a webmethod, in an aspx page not a service, that looks like this:

   [System.Web.Services.WebMethod]  
    public static List<Person> SearchSrf(SearchCriteria search)
    {
        List<Person> people = new List<Person>();
         //add persons to the list etc.
        return people ;
    }

And javascript that looks like this:

     var objSearch = new Object();
     object [FirstName] = 'Joe'
     //etc
    var DTO = { 'search': objSearch };
     then in my ajax call I set data: JSON.stringify(DTO)
  1. If I send data to the method through jquery ajax passing the object created in javascript with properties that match my search object and with the name of search .net successfully deserializes that JSON string to a search object.
  2. When I return list it also serializes it as a JSON string.

My question is how/why is this happening? I know that in my ajax call I set the dataType to json, but how does .net understand this without any decorating of the method or other configuration to let it know the format.

How/why is the return list serialized to a JSON string without any hint to do so?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧人哭 2024-11-12 06:09:24

我只是在这里猜测,但我假设它从 http 标头中提取请求类型。

I'm just guessing here, but I'd assume it's pulling the request type from the http headers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文