【问题标题】:MVC - How to structure views for a search form with results on same pageMVC - 如何在同一页面上构建搜索表单的视图
【发布时间】:2009-05-16 05:44:14
【问题描述】:

我在 VS2008 上有 MVC 1.0 应用程序。

我的网页有一个搜索表单字段,然后在单击搜索按钮时使用 Ajax.BeginForm 在一个 div 中加载结果。效果很好!

但是结果有一个分页器,它只使用带有 href 的锚点将页面索引传递给控制器​​操作。

当然与单击搜索按钮时使用的操作相同。

所以结果会自动显示在新页面中。因为链接 不使用 Ajax 调用。

那么我如何构建我的视图和操作,以便当在寻呼机中单击链接时 表单提交到action以及结果的页面索引??

你明白我的意思吗??

马尔科姆

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    我想我明白你在说什么。

    目前,您正在使用 Ajax 将结果动态更新为 div。邱尔。

    这里的诀窍是确保寻呼机中的每个“页面”都在 onclick 事件中定义了类似的 javascript 函数。这样,寻呼机不会对服务器进行“回发”,而是运行 javascript 方法......它调用了一些 ajax。

    这里有一些示例 html...

    <a href="#" onclick="DoPagedSearch(1)>1</a> | 
    <a href="#" onclick="DoPagedSearch(2)>2</a> .. etc
    

    这有意义吗?确保寻呼机不在表单内并注意“#”字符?这样可以确保当您单击文本时,它不会尝试转到其他 HTML 页面。

    您知道如何将任何 javascript 连接到 html 元素吗?你如何为寻呼机创建 html 代码?

    试试看,让我们随时了解情况。

    【讨论】:

    • 谢谢,这在一定程度上很有效。现在唯一的问题是每次单击分页链接时浏览器都会滚动到顶部。我还从 DoPagedSearch 函数返回了 false,所以它不应该这样做吗????有什么想法???
    • 我在 $('#resultsdiv').load 调用后返回 false,但这不起作用。所以我把它放在锚的点击中 click="DoPaging(2); return false" 并且这样做了。去图??
    【解决方案2】:

    使用 jquery 让页面锚点对控制器进行 ajax 调用。以 JSON 或 xhtml 或任何让您感到高兴的格式返回结果,并使用它来替换 div 的内容,或者如果是 JSON,则构建和替换内容。

    如果你还没有研究过 jquery,我强烈推荐它。文档相当出色。让我为您提供一些有用的链接:

    JSON.net serializer

    jQuery Documentation

    fair example of using jquery for paging

    该示例使用 rss 提要 (xml) 作为源,但它应该可以帮助您进行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      相关资源
      最近更新 更多