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

标签 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 总是会形成 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/

相关文章:

c# - 指定 NGramTokenizer 并将其与用于 Elastic Search 的 C# NEST 客户端一起使用

javascript - Kendo UI 下拉菜单通过单击按钮上的参数进行更新

c# - Entity Framework C# Insert Data 俄语编码问题

asp.net-mvc - ImageResizer 旋转图像

javascript - 固定 header 脚本函数 floatHead 正在添加一个额外的 thead

c# - 为什么我不能使用 HttpContext 或 HttpCookie? (ASP.Net 核心 1.0)

c# - var this.Parent as STP2Main 更好的语法

c# - 如何退出 "braced scope"?

c# - 什么时候在 WCF 中释放返回的 MemoryStream?

c# - 在循环中创建新对象