【问题标题】:ASP.NET Webforms with jQuery?带有 jQ​​uery 的 ASP.NET Web 表单?
【发布时间】:2010-07-14 06:50:46
【问题描述】:

我可以在开发 ASP.NET Webforms 应用程序时完全避免使用 MS AJAX 并使用 jQuery/jQuery 工具吗?

jQuery 似乎更敏捷,有更好的社区,极小的文件大小(24kb)。对于 ASP.NET MVC 开发来说,它似乎也是一个显而易见的选择。

但是网络表单呢?我真的不想使用 Visual Studio 2010 附带的 AJAX 工具。jQuery 能否为我提供默认 AJAX 控件必须提供的所有功能

谢谢!

【问题讨论】:

    标签: .net asp.net jquery asp.net-mvc ajax


    【解决方案1】:

    你可以在 webforms 中使用 jQuery 吗?是的,这不是问题 - 最终,整个 webforms 设置都会生成 HTML 网页,因此 jQuery 可以操作这些网页。

    jQuery 能否提供默认 AJAX 控件提供的所有内容 - 嗯,理论上是的,因为最终所有这些都是 a) 操作 DOM 和 b) 对服务器进行带外调用。在实践中,您将放弃一些易用性,您将不得不自己做更多的工作。

    最大的问题——至少对于在 .NET 4.0 之前运行的应用程序来说——是为服务器控件生成的 ID,呃,很有趣。如果您可以在 jQuery 中完成您需要的所有操作而无需参考控件 ID(如果您可以使用类或查找控件类型),您就可以离开并运行,但如果您需要明确说明 ID,您将感到压力除非你可以使用 .NET 4.0

    我的代码混合了两者(动态数据站点使用 jQueryUI 日历,因为它比工具包更好)并且肯定会考虑在表单应用程序中使用更多 jQuery 东西。

    【讨论】:

    • 您可以为服务器控件使用“结束于”属性选择器:$("[ID$=myControl]")
    • 整洁,jQuery 继续给人留下深刻印象
    • 事实上,我已经到了需要这样做的地步,所以虽然没有搜索到答案,但参与显然是一个有用的结果(-:
    【解决方案2】:

    是的。你可以。但是您需要使用许多 jquery 插件来实现不同的功能。

    在我们的一个项目(asp.net webforms)中,最初我们使用的是 MS Ajax。现在我们正在慢慢地成功迁移到 jquery。

    【讨论】:

    • 很高兴听到这个消息。我有 2 个我肯定会使用的 jQuery 插件:用于验证的 jQuery 工具和用于图表的 HighCharts JS。即使这样,它也比 MS AJAX 中的类似控件“臃肿”得多。
    • @Rihanna.Rain - 现在,微软正式支持 jquery,jquery 社区强大到足以解决 MS Ajax 的所有功能。
    【解决方案3】:

    这取决于您需要的开发模式。 jQuery 需要使用 Web 服务进行通信,而 MS AJAX 可以使用隐式回发。尽管后者便于快速开发,但使用 Web 服务进行数据通信是更好的做法。

    可以通过使用不同的 jQuery 库来模仿大多数 MS AJAX 控件。

    【讨论】:

      【解决方案4】:

      简短的回答:是的。正如铁爪的回答所暗示的那样,微软对此表示认可。

      唯一的问题是,正如您可能知道的那样,使用 Webforms 您无法控制您的控件将获得什么客户端 ID,通过 $('#id') 进行选择很麻烦。

      我通常通过使用 css 类进行选择来解决这个问题,或者在需要时(例如,当我需要在转发器中引用动态创建的控件时)在代码隐藏中获取控件的 ClientID 属性。

      【讨论】:

      • 可以使用$("[id$='YOURID']")选择器来选择id。
      • @Prutswonder:很好。你说的时候很明显,但出于某种原因,我从来没有想过。当多个控件共享相同的服务器 ID 时(例如与中继器或类似的),获取客户端 ID 或例如不过,仍然需要选择第 n 个孩子。
      • 回复:“使用 Webforms,您无法控制您的控件将获得什么客户端 ID”;可以使用 ClientIDMode="Static" 的 ASP.NET 控件属性将客户端 ID 值定义为特定值。这样做会使程序员负责分配唯一的 ID 值。
      猜你喜欢
      • 2010-09-22
      • 2014-07-10
      • 2018-02-20
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多