【问题标题】:what's the easiest way to get JSON objects from jQuery into .net?将 JSON 对象从 jQuery 获取到 .net 的最简单方法是什么?
【发布时间】:2011-12-10 22:26:44
【问题描述】:

我正在开发一个需要与服务器通信的 asp.net/jQuery 应用程序。

该页面具有一系列复选框,我想配置 jQuery 来告诉服务器这样一个简单的消息

"复选框 ID 12 已选中"

这将变成简单的 Json

{
     "ID": "12",
     "Checked" : "true"
}

我认为我不需要进入 RIA 服务,至少我希望不需要。我要做的就是记录在服务器上检查过的内容,以防他们关闭浏览器并稍后再回来。

用最少的代码实现这一目标的最佳技术是什么? WCF?

谢谢, 约翰

【问题讨论】:

  • 从客户端,您只需发出jQuery.post()jQuery.ajax() 调用并为这些函数配置参数,以将您想要的数据传递给您的服务器。
  • @jfriend00,MVC 也是如此,Webforms 也是如此吗?
  • @kenny - 我不明白你的问题。 OP 正在谈论让服务器了解复选框的状态。该复选框是否在表单中并不重要。如果要在不使用显式提交表单的情况下完成此操作,则可能需要使用 ajax 来完成,并且服务器(无论它使用什么架构)必须能够处理该 ajax 调用。
  • @jfriend00,我想我的意思是 ASP.NET WebForms 直接从 Javascript 处理帖子,我想知道,因为我不经常使用它。我知道在 ASP.NET MVC它得到了很好的支持,并且几乎可以自动将 JSON 类处理为 MVC 方法。
  • 我想在客户端使用 jQuery.ajax,但是服务器端呢? WCF 非常复杂,对于这样一个简单的服务来说可能是多余的。 Asp.net ajax 可能不会留下来,所以我想转向更永久的东西。

标签: jquery wcf json


【解决方案1】:

ASMX ScriptServices(或 ASPX 的页面方法,如果您想将此代码保留在特定页面的代码中)是一种很好的方式来做到这一点,而不会屈服于 WCF 的复杂性。如果您使用 jQuery 的 $.ajax() 从客户端发送与服务器端的类匹配的 JSON,ASP.NET 将自动处理 JSON 和该对象之间的映射:http://encosia.com/using-complex-types-to-make-calling-services-less-complex/

事实上,如果您最终需要处理 JSON 中的 DateTimes、Dictionaries 或枚举,ASMX 的底层序列化器比 WCF 的更好

从长远来看,Web API 将在 ASMX 的简单性和 WCF 的附加功能之间达到最佳平衡点。在我的实验中,将 ASMX 服务迁移到 Web API 是非常容易的。因此,如果 ASMX 在 ASP.NET 5 中被弃用(但是,ASMX仍然在“添加新项目”列表中作为“Web 服务”在 Visual Studio v.Next 开发者预览版中,所以你真的不得不谈论它即将被弃用的一粒盐)。

【讨论】:

    【解决方案2】:

    不确定您的网页是如何创建的...我最近创建了一个动态驱动的页面,我在后台传入了 JSON 对象的 JSON 字符串表示形式,然后在页面加载时获取该 JSON 字符串并转将其转换为 JSON 对象。然后,当用户在后台进行更改时,我会操作该 JSON 对象并将其发送到服务器并从那里传递。

    我猜您可以在选中复选框时即时创建 JSON 对象,然后通过 jquery 进行 ajax 调用。现在,每次您选择一个复选框时,是否需要添加到 JSON 对象或创建自己的单个对象?

    如果您只是想告诉服务器一个对象已被选中,为什么还需要 JSON 对象?

    【讨论】:

    • 我很确定我想在客户端使用 jQuery,但是服务器端呢? WCF 是创建接受 json 对象的服务的最佳方式吗?
    【解决方案3】:

    我发现最好的方法是结合使用 jQuery $.post() 和从 Request.Form 集合中提取值的通用处理程序,因此我根本不需要参与 WCF。

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2010-09-15
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多