MVC - 如何为搜索表单构建视图,并在同一页面上显示结果

时间:2009-05-16 05:44:14

标签: asp.net-mvc

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

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

但是结果有一个寻呼机只使用一个锚点,其中href将页面索引传递给控制器​​动作。

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

所以会发生什么,结果会自动显示在新页面中。因为链接 没有使用Ajax调用。

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

你了解我吗?

马尔科姆

2 个答案:

答案 0 :(得分:1)

我想我明白你在说什么。

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

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

这里有一些示例html ...

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

这样做了吗?确保寻呼机不在表格内并注意'#'字符?这确保当你点击文本时,它不会尝试在其他地方转到另一个HTML页面。

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

试试并告诉我们。

答案 1 :(得分:1)

使用jquery让页面锚点对控制器进行ajax调用。将结果返回为JSON或xhtml或任何使您感到满意的格式,并使用它来替换div的内容,或者在JSON中构建和替换内容。

如果你还没有挖到jquery,我高度推荐它。文档非常好。让我为您提供一些有用的链接:

JSON.net serializer

jQuery Documentation

fair example of using jquery for paging

该示例使用rss feed(xml)作为源,但它应该让你去。