【发布时间】:2011-03-26 14:15:48
【问题描述】:
首先,我不确定这是这个问题的正确标题,但希望我能做得更好,试图解释我需要完成的工作。
简介
我想要做的是加载与我所在页面相关的常见问题解答信息。假设我在 www.domain.com/items/index 页面上,我想加载描述在此页面上可以完成的操作以及可用选项的常见问题解答信息......等等。然后,用户翻滚一个搜索栏,我想(在页面的一侧)显示一个简短的文本,描述搜索框及其工作原理(比如告诉他们您可以通过关键字或特定项目或...等进行搜索)。其余页面和这些页面上的内容也是如此。
头脑风暴
好吧,到目前为止我的想法是什么,但我不确定(因此这就是我发布问题的原因)如下:
- 在数据库中,创建两个表:PageFAQ 和 ElementFAQ,其中 ElementFAQ 是 PageFAQ 的子表。我之所以想到这一点,是因为我会将 PageFAQ 和所有 ElementFAQ 一起加载,然后将它们转储到页面中并隐藏它们。
- 此时,我只会显示 PageFAQ 的摘要文本,它会告诉用户更多关于页面和一些可用选项的信息。
- 现在,为了加载正确的 ElementFAQ,应在服务器端和客户端采取一些步骤:
- 确保数据库中 ElementFAQ 的 ID/名称与之前转储到页面中的隐藏 div 匹配(当加载与页面相关的 PageFAQ 时)
- 当用户滚动一个元素(比如搜索栏)时,我会使用 jQuery 搜索一个 id 为 faq_searchBar 的 div,并在 FAQ 侧框中显示其 innerHTML。
问题
上面提到的所有东西理论上都应该有效。但是我不知道如何在我当前正在查看的“页面”和数据库中的 PageFAQ 条目之间进行映射。如您所知,ASP.NET MVC 中没有真正的页面,只有路由。那么有什么方法可以使用路由数据来获取所需的 PageFAQ 吗?或者我应该使用查询字符串?或者有没有更好的方法一起做这一切,最好是首先不使用魔术字符串的方法。
更新:
加载 PageFAQ 及其所有 ElementFAQ 子项并将它们作为隐藏的 div 转储到页面中会不会有太多开销?或者当用户滚动元素时通过 AJAX 加载它们会更好吗?
欢迎您提出建议。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 asp.net-ajax asp.net-mvc-routing