我正在制作一个允许用户更改项目顺序的屏幕,当用户点击"保存"按钮时,我的javascript将查看<li>
项目的顺序,并按顺序找到它们将会形成一个带有id值的数组,并将其发送回我的应用程序.我希望POST数据看起来像:
stepIds=5&stepIds=2&stepIds=1
Run Code Online (Sandbox Code Playgroud)
这意味着步骤的顺序为#5,然后是#2,最后是#1.在我的Asp.Net MVC应用程序中,我计划用它来捕获它:
public virtual ActionResult Reorder(short[] stepIds) { }
Run Code Online (Sandbox Code Playgroud)
我的问题是,Asp.net MVC是否总是以与stepIds
POST字符串中指定的值相同的顺序组成数组,或者我是否需要执行更复杂的POST以确保用户选择的顺序是服务器的顺序看到?
不,您不能依赖该订单。在 ASP.NET 4.0 中实现这一点的方式确实会保留顺序,但在未来的版本中可能会改变。你可以用 Reflector 查看HttpValueCollection.FillFromString
私有方法,看看它是如何实现的。
保证订单的唯一可靠方法是:
stepIds[0]=5&stepIds[1]=2&stepIds[2]=1
Run Code Online (Sandbox Code Playgroud)