关于wcf和页面导航的设计问题

时间:2011-05-10 16:07:43

标签: c# asp.net wcf navigation

我有一个c#/ asp.net 4.0(非MVC)网站,用户可以搜索各种项目。搜索/结果功能的工作方式如下:

在搜索页面上,用户填写搜索条件(文本框,下拉列表等...),然后单击提交按钮。 on_click事件处理程序执行一些验证和/或错误检查。如果所有内容都检出,我创建一个对象来保存所有值并将对象放入会话中。然后我做一个response.redirect到结果页面。在结果页面上,我读取会话外的对象并联系wcf服务并将对象传递给它。 wcf执行搜索并返回结果(如果有的话)并显示结果。

我很好奇是否有更好的方法来做到这一点。它运作正常,但有些事情并不合适。关于将对象加载到会话中我并不太疯狂。

我更喜欢将对象(带有搜索条件)发送到wcf,然后进行重定向,让结果页面保持加载状态,直到我从wcf服务获得响应。获得结果后,返回并加载包含结果的页面。

这可能吗?任何反馈/链接将不胜感激。

此外,不会有任何第三方使用我们的wcf服务,这都是内部的。

1 个答案:

答案 0 :(得分:2)

有三种方法可以做到这一点

  • 而不是将数据作为post使用简单的GET到搜索页面。搜索条件将在URL中传递,例如google。
  • Cross page post back - 自.NET 2.0以来可用的功能。它将删除会话和重定向。您还可以使用Server.Transfer / Server.Execute
  • AJAX回调。您的搜索不会发布表单,而是直接致电服务以获取结果。您既可以使用ASP.NET script manager,也可以使用jQuery等轻量级javascript框架。您的WCF服务必须使用JSON编码公开webHttpEndpoint。