我的页面中有一个表单,一个get和一个帖子,我想在我的获取表单上添加寻呼机..所以我无法翻阅结果..
我遇到的问题是当我移动到第二页时它没有显示任何内容..
我正在使用这个库进行分页.. http://stephenwalther.com/Blog/archive/2008/09/18/asp-net-mvc-tip-44-create-a-pager-html-helper.aspx
这是我的行为代码。
[AcceptVerbs("GET")]
public ActionResult SearchByAttraction()
{
return View();
}
[AcceptVerbs("POST")]
public ActionResult SearchByAttraction(int? id, FormCollection form)
{....
}
这就是我在获取表单上使用
的方式<%= Html.Pager(ViewData.Model)%> //但是当我这样做时,它会去 这种方法 的[AcceptVerbs( “GET”)] public ActionResult SearchByAttraction()
而不是这个
[AcceptVerbs(“POST”)] public ActionResult SearchByAttraction(int?id,FormCollection form)
哪种情况发生..但我真的想不出任何其他方式这样做
任何帮助都将非常感激..
感谢名单
答案 0 :(得分:9)
我建议不要通过HTTP POST进行分页。页面和搜索条件是查询字符串的两个完美示例。将这些值放在查询字符串&加载你的行动args。
想一想。您可以在谷歌搜索“馅饼”,导航到第14页,复制链接并将其发送给您的祖母。当您的传呼/搜索仅适用于表单帖子时,您无法执行此操作。
答案 1 :(得分:1)
当然它会触及SearchByAttraction的GET版本,因为使用这个控件你有一个链接作为输出。
所以你需要做的是:
1. make form on the page:
<form id="myForm" action="your/url" method="post">
<input type="hidden" name="page" />
<input type="hidden" name="your_param1" />
<input type="hidden" name="your_param2" />
<input type="hidden" name="your_paramN" />
</form>
2. make changes to pager - it should produce something like that:
<ul id="pager">
<li><a href="url/as/was/created/by/pager" onclick="return submitMyForm(1);">1</a></li>
<li><a href="url/as/was/created/by/pager" onclick="return submitMyForm(2);">2</a></li>
<li><a href="url/as/was/created/by/pager" onclick="return submitMyForm(3);">3</a></li>
</ul>
3. add simple javascript function on the page:
<script language="javascript" type="text/javascript">
function submitMyForm(page) {
var form = document.forms["myForm"];
form.elements["page"].value = page;
form.submit();
return false;
}
</script>
您将能够点击POST版本,因为点击该链接将使用POST请求在服务器上提交您的表单。
答案 2 :(得分:1)
试试这个:
[AcceptVerbs("GET")]
public ActionResult SearchByAttraction(int? id)
{
return View();
}
id应包含您需要显示的页码。
如果您使用此方法丢失表单值,则需要更改Html.Pager方法以将每个操作链接呈现为表单提交链接。
答案 3 :(得分:1)
Thanx每个人我终于让它工作..只是使用了一种形式..并做了类似的事情
控制器操作
[AcceptVerbs("GET")]
public ActionResult SearchByAttraction()
{
return View();
}
public ActionResult Search(FormCollection form,int? id)
{
var info = _repository.ListByLocation(city, postal, pageIndex, 2);
return View("SearchByAttraction", info);
}
查看
<% using (Html.BeginForm("Search", "Home", FormMethod.Get))
{ %>
所以每次发帖都会调用搜索方法..