我有一个简单的视图,在列表中显示一些客户详细信息。用户可以使用下拉列表和文本框过滤列表,以显示他们感兴趣的结果,然后使用JQuery / AJAX返回部分视图并更新列表。对于列表中的每个项目,都有一个编辑按钮,用户可以使用其他操作来编辑该特定项目。当他们保存或取消时,用户被定向回客户详细信息页面,但他们应用的过滤器显然已重置为默认值。我想知道在MVC世界中解决这个看似常见问题的标准方法是什么? 谢谢。
答案 0 :(得分:0)
只需使用Session
来保留其过滤器即可。它往往被没有经验的开发人员过度使用,但你描述的情况几乎就是它的用途。
答案 1 :(得分:0)
一种方法是假冒当前行的更新。
考虑一下,您单击了删除按钮以删除该行。 现在使用jQuery -
$.get(url,data,function(data){
if(data.success){
$('row').fadeOut(300,function(){
$(this).remove(); //<--- This is what I mean
});
}
});
此处您已根据Json
结果删除了该行,并且您的页面无需任何刷新。
同样在您的情况下,通过管理一些空间,只需在同一页面加载编辑Partialview
。
你至少可以做到这一点。
答案 2 :(得分:0)
由于HTTP是无状态协议,因此您有责任记住页面的状态。我们的方法之一是在弹出窗口中单击同一页面上的“编辑”按钮显示其他详细信息。如果您准备好进行设计更改,它将解决问题。
否则,您必须使用标准状态管理技术,如服务器上的会话或缓存来记住以前的搜索状态,或者您可以在自己的URL中附加一些键值,当用户取消时,从URL查询中重新收集状态字符串。
如果不考虑安全性,还有一种方法是使用Cookie将以前的选择存储在客户端计算机上(如果它非常特定于用户)。