我正在制作一个允许用户更改项目顺序的屏幕,当用户点击“保存”按钮时,我的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是为了确保用户选择的顺序是服务器看到的顺序吗?
答案 0 :(得分:3)
不,你不能依赖订单。在ASP.NET 4.0中实现它的方式确实会保留顺序,但在将来的版本中可能会更改。您可以使用Reflector查看HttpValueCollection.FillFromString
私有方法,了解它是如何实现的。
保证订单的唯一可靠方法是:
stepIds[0]=5&stepIds[1]=2&stepIds[2]=1