我应该为 ASP.net 创建一个 JQuery 服务器控件以便在我的应用程序中最好地使用它吗?
Posted
技术标签:
【中文标题】我应该为 ASP.net 创建一个 JQuery 服务器控件以便在我的应用程序中最好地使用它吗?【英文标题】:Should I create a JQuery server control for ASP.net to best use it in my apps? 【发布时间】:2010-09-15 12:53:55 【问题描述】:我在组织内推广 JQuery 方面相当成功。靠它自己可不是小事。然而,为了使它成为我们应用程序的一部分,这里提出的一个想法是创建一个 ASP.net 服务器端控件。 (在可预见的未来,我们将坚持使用 WebForms。)
我不太喜欢这种方法,因为当几个脚本标签就可以完成这项工作时,这似乎有点矫枉过正。我们在网上找到了一个article,涉及的代码量似乎并不能证明其合理性。但是,我确实听说在脚本缓存或生成服务器控件时会产生一些好处。
我的问题:
有没有其他人编写过 ASP.net 服务器控件来提供 JQuery js 代码? 是否有其他人认为避免编写 JQuery 或 javascript 代码是一个疯狂的想法?【问题讨论】:
【参考方案1】:我知道微软(连同诺基亚)正在“主流化”jQuery,并将把它与 Visual Studio 的未来版本集成。您可能想探索他们将如何正式使用它,以便您现在可以定制您的设置,并希望在以后轻松过渡到“官方 MS jQuery”。
【讨论】:
【参考方案2】:我同意你的看法。不值得花时间创建和创建控件以添加 JQuery 脚本位置。
更好的解决方案是拥有 1 个 .js 文件,其中包含在页面上加载所需的所有链接。如果这是团队的问题,那可以消除分配的 .js 链接。
我唯一可以原谅创建一个自定义控件来链接 JavaScript 的唯一原因是您不想将 JavaScript 复制到服务器并希望将其嵌入到 .dll 中。但是,您不会阻止人们在页面上看到 JavaScript,因为如果您将文件嵌入到 .dll 中,您必须在标头中将它们注册为完整的脚本文件。
【讨论】:
【参考方案3】:使用服务器控件注入 JavaScript 引用的一个原因是更容易控制将哪些 JavaScript 文件添加到页面。想象一个场景,你使用 jQuery 核心,加上 jQuery UI 和一些其他插件。根据您对该控件的编码方式,您可以让开发人员轻松选择特定页面所需的功能,而无需担心所需的特定脚本。这种方法可以为您的应用程序分段提供很大的灵活性:例如,服务器控件可能被母版页、子页、用户控件或其他服务器控件使用。如果母版页注册了对一个 jQuery 库的要求,但子页面或用户控件之一需要额外的库,那么拥有统一的 API 会使这件事变得简单。就个人而言,我认为这最好由帮助程序库而不是服务器控件来处理。
底线是您希望每个开发人员重新发明***或使用通用、简单易用的 API 来强制您的应用程序保持一致。
【讨论】:
我可以看到这种情况,但是否值得编写更多代码来管理其他代码?我不是这个想法的忠实拥护者,所以我试图在某个地方找到一些优点。【参考方案4】:我发现 Scott Hanselman 的 blog post 带有一个具有 ASP.net AJAX + JQuery 的示例应用程序。这是一个简单的应用程序,但它包含所有带有脚本标签的 javascript。我没有看到任何建议使用服务器控件来提供脚本。
【讨论】:
以上是关于我应该为 ASP.net 创建一个 JQuery 服务器控件以便在我的应用程序中最好地使用它吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery 和 ASP.NET MVC 将集合插入模型,创建插件
在 ASP.NET MVC Core 3.1 中通过 jQuery 为部分视图附加 html 的问题