【发布时间】: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