我有一个相当简单的网站,搜索局部视图和上市局部视图。 他们卷起使用多个模型到索引视图。
一切都好。 除了当我点击格列标题进行排序或企图页面数据的下一个上市,电网回来空。 如果我重新提交相同的搜索条件,然后将网格排序或正确分页所有适用的数据重新填充。
我已经追踪这种行为降低到了的WebGrid建立它的分页和排序机制,为GET而不是POST的事实。 所以,很显然我所有的模型数据都不放过提交。
是不是有办法让的WebGrid沿POST所以数据的标签? 作为一类不包含数据的一个希望页面或排序似乎对的WebGrid相当适得其反。
这可能不是最完美的解决方案,但它的工作原理:
模型添加到视图您的会议:
Session.Add( "Model", Model );
然后,在指数取得动作在你的控制器(或任何GET动作是),只是检查值并调用POST操作:
if ( Session[ "Model" ] != null )
this.Index( Session[ "Model" ] as MyModel );
清理您的会话相应。
老问题,但只是增加一个参考:
我优选在所建议的解决方案这个链接
解决了使用JQuery问题:
var links = $('a[href*=page], a[href*=sort]'), form = $('form');
links.click(function () {
form.attr("action", this.href);
$(this).attr("href","javascript:");
form.submit();
});
继JQuery的答案以上(这给我带来了成功,谢谢!)不要忘记undelegate的的的WebGrid自己神奇的方法,它增加了幕后。 否则,你最终可能会与另一个阿贾克斯在同样的时间,您的文章出现。
结合之前的“页面”和“排序”链接做到这一点: -
$("#MyWebGridID").undelegate();
文章来源: How do I get my WebGrid to POST instead of GET during a sort or paging operation in my MVC4 site?