我可以假设我通过POST发送值的顺序将是模型绑定到Asp.net MVC中相同顺序的数组吗?

时间:2011-09-22 13:30:34

标签: c# asp.net-mvc

我正在制作一个允许用户更改项目顺序的屏幕,当用户点击“保存”按钮时,我的javascript会查看<li>项的顺序,以及按照它找到的顺序,它将形成一个带有id值的数组,并将其发送回我的应用程序。我希望POST数据看起来像:

stepIds=5&stepIds=2&stepIds=1

这意味着步骤顺序为#5,然后是#2,最后是#1。在我的Asp.Net MVC应用程序中,我打算用它来抓住它:

public virtual ActionResult Reorder(short[] stepIds) { }

我的问题是,Asp.net MVC 始终将以与POST字符串中指定的值相同的顺序形成stepIds数组,或者我是否需要执行更复杂的操作POST是为了确保用户选择的顺序是服务器看到的顺序吗?

1 个答案:

答案 0 :(得分:3)

不,你不能依赖订单。在ASP.NET 4.0中实现它的方式确实会保留顺序,但在将来的版本中可能会更改。您可以使用Reflector查看HttpValueCollection.FillFromString私有方法,了解它是如何实现的。

保证订单的唯一可靠方法是:

stepIds[0]=5&stepIds[1]=2&stepIds[2]=1