我正在开发一个允许用户更改项目顺序的屏幕,当用户单击“保存”按钮时,我的 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 总是会形成 stepIds
数组的顺序与 POST 字符串中指定值的顺序相同,还是我需要执行更复杂的 POST 以确保用户选择的顺序是服务器看到的顺序?
最佳答案
不,您不能依赖订单。这是在 ASP.NET 4.0 中实现的方式,它确实会保留顺序,但这可能会在未来的版本中改变。您可以查看带有 Reflector 的 HttpValueCollection.FillFromString
私有(private)方法,了解它是如何实现的。
保证顺序的唯一可靠方法是:
stepIds[0]=5&stepIds[1]=2&stepIds[2]=1
关于c# - 我可以假设我通过 POST 发送值的顺序将模型绑定(bind)到 Asp.net MVC 中相同顺序的数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7515540/