jquery - 使用 ASP.NET、Knockout.js、JQuery 将数据绑定(bind)到 <select> 的推荐方法是什么?

标签 jquery asp.net knockout.js

我处理的应用程序都是用于 Intranet 网站的 ASP.NET 应用程序。我们正在向应用程序添加越来越多的 JQuery 客户端代码,以增强用户体验。然而,下拉框填充仍然在代码隐藏页面上完成,如 1 中所述。

“现在”最好的方法是什么:

  1. 使用 ASP.NET 服务器端控件 使用 asp:DropDownList 在服务器上执行数据绑定(bind)以最初填充列表

  2. 进行 JQuery AJAX 调用 从 ASP.NET Web 服务获取 List<> 形式的数据,并使用 Jquery 为每个返回的列表项创建选项。

  3. 使用 View 模型 使用类似于 2 中的 Web 服务,但将结果填充到 knockouts View 模型中,并使用其数据绑定(bind)功能让 knockout 填充选择选项。

谢谢!

最佳答案

您想要做的大部分事情取决于您如何将数据发送回服务器。正如其他人所建议的,对于大型列表,使用选项 #2 或 #3 是最佳选择。但是,通过这样做,您的 DOM 元素将不会添加到页面 ViewState 中,并且在回发到页面时会遇到问题。您的下拉列表选择的值将在回发时丢失。如果您打算使用 AJAX 将表单数据发送到服务器,并且页面不会执行完整的回发,那么您就可以继续,因为不会重绘页面对象。

使用 AJAX 填充页面将使您能够更好地控制用户体验,因为您可以在页面加载后加载大型列表。您的页面可以变得更加动态,您的用户会欣赏这一点。在我们公司,我们处理大量数据,一次性将所有内容发送到页面是行不通的。此外,我们有来自世界各地的用户访问页面,页面加载速度绝对是一个问题。 AJAX/JSON 允许所有用户更快地加载我们的页面。我们在客户端完成所有操作,并且仅使用 AJAX 将数据发送回服务器,因此我们永远不会遇到回发问题。

按照你所知道的去做。然而,绝对值得您花时间运行一些 AJAX 测试,看看您和您的同事对这种新方法的适应程度如何。

关于jquery - 使用 ASP.NET、Knockout.js、JQuery 将数据绑定(bind)到 <select> 的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412351/

相关文章:

asp.net - 如何将对象序列化为查询字符串格式?

javascript - 如何停止knockout js绑定(bind)的初始评估?

knockout.js - 使用 mocha 进行 headless knockout View 模型测试

javascript - 谷歌图表重绘onclick

Javascript:SetTimeout 和 ClearTimeout 重置。

javascript - 动态创建的div不显示

asp.net - 项目与 netcoreapp2.0 不兼容

javascript - 在 MVVM modelView 中进行初始化有意义吗?

javascript - 删除带有特殊字符的 HTML 元素

javascript - 如何防止jquery提交按钮刷新HTML页面?