如何使用ASP.NET MVC4 WebGrid进行排序时保留表单值

时间:2013-01-19 19:52:43

标签: asp.net-mvc sorting filter webgrid

我正在MVC4中构建一个搜索页面,其中包含一个过滤器表单和一个webgrid帮助器来显示数据。过滤和排序所有工作正常,但是当我单击要排序的列时,它会使用带有排序参数的GET控制器函数重新加载页面的初始版本,从而丢失过滤器设置。我真的希望它将表单重新提交到POST控制器函数,以便使用和重新填充过滤器表单。对我来说最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

这可能不是最优雅的解决方案,但它有效:

在视图中将模型添加到会话中:

Session.Add( "Model", Model );

然后,在控制器中的Index GET Action(或GET Action的任何内容)中,只需检查值并调用POST操作:

if ( Session[ "Model" ] != null )
    this.Index( Session[ "Model" ] as MyModel );

相应地清理会话。