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