【问题标题】:How to access items of a .net collection using jquery in webforms如何在 webforms 中使用 jquery 访问 .net 集合的项目
【发布时间】:2011-11-14 16:05:05
【问题描述】:

在一个 asp webform 项目中,我正在调用一个返回结果集合的 Web 服务,如下所示。

集合的伪代码返回

content (items are key value pair) 
 ID, 001
 Title , My Book
 DateCreated , 10/10/2011
 Author, JSmith

我想做的是在初始返回时仅在数据重复器中显示书名,然后一旦用户单击详细信息,就会在表单的单独窗格 div 容器中显示剩余字段。我过去在 Silverlight 和 MVC 中使用通用列表完成了此操作,但是在这个项目中我不能使用任何一个。

在进行一些研究时,我看到人们在哪里使用 json 来进行类似的调用。但是,我用 fiddler 进行了调试,我可以看到整个集合正在返回到 UI,所以看起来我应该能够直接进入集合而不是重新调用服务器?在 UI 中,我不使用 asp:net 控件,而是使用标准 html 来呈现 UI 中数据中的数据。

例子

<div class="resultcontainer">
                    <span class="labeltitle-small">Book Title</span><br />
                    <%= BookResults[0].Title %>
                </div>

我可以查询并返回结果,但是我卡住的地方是显示关联记录的辅助数据的最佳方法。

对于如何(来自客户端)仅显示集合的视图值,然后在选择记录后将其他值显示给用户,我真的很感激。

谢谢

【问题讨论】:

  • 您必须回拨服务器。在我的计算机上的网络浏览器中运行的代码如何能够直接访问您服务器的数据结构?
  • @Pointy 这让我很困惑。当结果返回并绑定到 ui 时,您是说只有在 UI 中明确定义的属性才会持续存在吗?是否没有推送到包含其他属性的客户端的内存集合?使用 MVC 和 MVVM,我可以绑定到视图,然后根据需要访问属性。我猜这不是网络表单的情况吗?根据您所说的,一旦 UI 将其呈现出来,集合就会被销毁,这样在不返回服务器的情况下就无法再从客户端访问这些值?
  • 不,到达客户端的所有内容都包含在您显式控制的 HTTP 响应中。浏览器环境完全没有通过任何其他方式感知服务器端状态。如果页面需要的东西在最初获取时没有包含,那么是的,客户端必须向服务器发出另一个请求。
  • @Pointy 感谢您的确认。

标签: javascript jquery asp.net json webforms


【解决方案1】:

好吧,也许有点明显,但是您是否考虑过使用jQuery.ajax 的AJAX?您可以将 onclick even 处理程序附加到 div 并在用户选择特定书籍时将数据加载到页面的适当部分。

您可以从控制器返回部分视图。生成的 HTML 可以使用类似于 $("#detailDiv").html(partialView) 的内容显示在 div 中。

【讨论】:

  • 感谢 Pieter,您的解决方案是准确的,但似乎也依赖于 MVC 模式方法。这使得创建控制器、视图和数据上下文的依赖项将部分视图推送到 web 表单中,这是我想为这部分项目做的更多。
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多