【发布时间】:2010-08-19 17:47:50
【问题描述】:
我们开始了一个使用 WebForms 的项目,并开发了一个有点复杂的门户系统来容纳面包屑、导航等。我们始终在 URL 上保留一个额外的导航上下文 ID 参数,以便我们可以可靠地跟踪用户的面包屑历史记录,即使他们使用多个选项卡或使用浏览器上的导航按钮。为了在 WebForms 中正常工作,所有非回发链接都需要由门户的实用程序方法生成。我们从使用门户的实用方法中获得了许多好处,因此它真的不是负担。由于在给定页面上发生的任何操作都将使用回发,因此执行这些操作时 URL 不会更改。
现在我们开始在我们网站的某些部分使用 MVC,到目前为止,过渡相对顺利。不过,我想确保可以正确使用我们的门户网站而不会真正妨碍您。到目前为止,我们正在使用一些自定义的 HtmlHelper 扩展方法来生成各个页面之间的链接(即使“页面”在 MVC 中并不真正存在,但某些操作具有渲染整个页面的效果)。这允许我们在页面操作的 URL 上保留导航上下文 ID。但是,为了避免丢失此 URL 参数,我们仅对页面内的任何操作使用 AJAX 请求。这使我们无法以完整视图响应大多数操作请求,或遵循 Post-Redirect-Get 模式。
虽然我是 AJAX 的忠实拥护者,而且从技术上讲,我们不打算支持未启用 javascript 等的浏览器,但我仍然希望保留我们的选项。因此,我希望能够在任何时候通过内置的 HtmlHelper 方法呈现链接或表单时,我可以挂钩到 URL 构造,并将上下文 ID 附加到 URL 查询参数。有没有(最好是简单的)方法来做到这一点?或者您认为我的问题的另一种解决方案会更好吗?
【问题讨论】: