重新排序MVC视图中的对象列表

时间:2014-03-05 13:05:16

标签: c# asp.net-mvc

我有一个显示对象列表的MVC视图。显示1的列表中的对象左对齐显示,而显示2和父属性1的对象在属性1对象下缩进:

property1-display1
    property3-display2
    property4-display2
property2-display1
    property5-display2

我需要能够使用向上和向下箭头按钮手动更改相应显示级别中这些项目的顺序,因此如果我向property1-display1和{{1}移动property3-display2将随着它向下移动。向上和向下按钮发回控制器,但只有当用户单击保存按钮时,列表才会发送到数据库。

我编写的代码在控制器中执行此修改,但是当我尝试进行第二次移动时,模型将恢复到原始状态。

要求是用户可以根据需要更改页面上的任意数量的项目,但在用户单击“保存”按钮之前,不应对列表的顺序进行任何更改。

我无法解释为什么模型没有正确更新。我尝试使用以下命令禁用此控制器的缓存:

property4-display2

但这并没有什么区别。

重新排序列表的代码如下所示:

[OutputCache(Duration = 0)]

任何建议都表示赞赏。感谢

1 个答案:

答案 0 :(得分:0)

答案实际上非常简单(感谢我的同事杰森)。只需清除模型状态:

ModelState.Clear();

然后返回更新的模型。