【问题标题】:Leverage AJAX as combination of JQuery with ASP .NET将 AJAX 用作 JQuery 与 ASP .NET 的组合
【发布时间】:2010-08-12 05:56:19
【问题描述】:

我是 ASP .NET 中该主题的新手,但是我有 PHP 经验 - 整个想法很简单:创建像 something.php 这样返回纯 JSON 的页面,然后调用它使用 $.post (例如)。

现在,在 ASP 中,我进入了另一种方法(使用 Web 服务 + ScriptService 属性 + MS 库来生成代理)。我真的不觉得它有用,因为我长时间使用 jquery 并且我不热衷于学习另一个 javascript 框架库......

底线:使用 jquery 创建 AJAX 调用到 IIS 中托管的 ASP .NET 应用程序的最佳方法是什么(更少的代码,最快的)。目前,我一直在使用 Page_Load 中的所有代码创建空页面(如 CheckSession.aspx)。方法使用 Response.Write 写入响应,然后使用 Response.End 结束它。困扰我的是:

  • 由于 ASP .NET 不是轻量级的,我担心此解决方案的性能(所有页面生命周期等...)。也许有更简单/更快的方法来做到这一点?
  • 我仍然有代码隐藏 cs 文件 + aspx 文件(我想要一个文件,更少的代码,更少的文件,更少的麻烦)。
  • 在 Response.Write 作为参数中,我只放置了一个手动连接的字符串。如果我想使用对象并像 Response.Write(obj.toJSON()) 那样对其进行序列化怎么办 - 有可能吗?

我将不胜感激一些指导方针和链接。

谢谢,帕维尔

【问题讨论】:

    标签: asp.net jquery ajax


    【解决方案1】:

    就我个人而言,我发现 ASP.NET MVC 是 jQuery(尤其是 JSON)的完美搭档,并且减轻了许多人对传统 Web 窗体的许多“重量级”顾虑。

    将 JSON 数据返回给 jQuery 就像返回一个普通的 CLR 对象的 JsonResult 一样简单,如下所示:

    public ActionResult GetData() {
        var domainObject = Repository.Load();
    
        return Json(domainObject);
    }
    

    这就是将大多数对象直接返回到 jQuery 的全部内容,根据我的经验,它与标准的 jQuery JSON 功能完美配合。

    您不必处理真正只是 JSON 化数据的“视图”、手动连接字符串或您在 Web 表单中可能遇到的任何其他手动操作。

    【讨论】:

    • 谢谢,我会记住的。不幸的是,我当前的项目使用的是 ASP .NET 2.0,而不是 MVC 版本。
    【解决方案2】:

    由于 ASP .NET 不是轻量级的,我担心此解决方案的性能(所有页面生命周期等...)。也许有更简单/更快的方法来做到这一点?

    这个网站(stackoverflow)是使用 ASP .NET 构建的,我认为它的性能相当不错。

    【讨论】:

    • 呵呵。我会争辩说,点击 100 万次只返回一个字符串的普通 PHP 脚本比点击 ASP .NET 中的同一页面要快。无论如何,这是无关紧要的。关键是我想以 ASP .NET 和 .NET 框架可以提供的更快/最优化的方式实现我的 AJAX 调用。
    【解决方案3】:

    听起来 ASMX Web 服务符合您的要求。 ASMX 调用不会像 ASPX 调用那样经历整个页面生命周期,因此它们通常会比作为 ASPX 页面实现的类似功能稍好一些。它们在 .cs 代码文件中严格定义(没有 .ASPX / .ASPX.CS 代码隐藏关系)。它们可以配置为自动将返回的对象序列化为 JSON,因此您不会进行任何 Response.Write 调用。如果您使用“EnableSession = true”属性,您可以使用与您的 ASPX 页面相同的会话,这可能会很方便。

    This stackoverflow discussion 应该会给你几乎所有你需要知道的东西。就此而言,在 stackoverflow 中搜索 ASMX 和 JSON 应该会为您提供更多有用的信息。

    WCF 是另一个需要考虑的选项:MS 正在从 ASMX 转向 WCF 以进行 Web 服务开发。但是,如果您被锁定在 .NET 2.0 中,WCF 可能不适合您。另外,在我看来,如果您不需要 WCF 的附加功能和灵活性,我发现 ASMX 服务的开发更快、更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      相关资源
      最近更新 更多