jquery - ajax.actionlink 路由值中是否可以有一个列表

标签 jquery ajax asp.net-mvc

我有一个Ajax.ActionLink在路线值中我有一个 new List<object>这是合法的吗?另外,我需要 @ before the Model

@Ajax.ActionLink(Model.LastName[lastNameCount - 1].Value1, // <-- Text to display
   "TimeSeriesData", // <-- Action Method Name
   new List<object>{@Model, @Model.LastName[lastNameCount - 1]},
   new AjaxOptions
      {
         UpdateTargetId = "dialog2", // <-- DOM element ID to update
         InsertionMode = InsertionMode.Replace, // <-- Replace the content of DOM element
         HttpMethod = "GET" // <-- HTTP method
      },
   new
      {
         @id = "opener"

      })

我的 Controller 方法接受列表作为参数

mymethod(列表列表)

最佳答案

不使用@Ajax.ActionLink()。如果您传递一个对象,则该方法在内部使用反射来使用对象中每个属性的名称和值构建 RouteValueDictionary。因此,对于仅具有原始项目的简单对象,它可能返回(例如,对于 Person 对象) /TimeSeriesData?id=1&firstname=John&lastname=Doe 但对于集合或对象中的复杂对象,它仅返回属性的 ToString() 方法。

在您的情况下(检查它生成的html)它会类似于 /TimeSeriesData?capacity=0&count=0 因为 capacitycountList 的属性。您可以构建自己的 RouteValueDictionary 但这不是一个好主意,因为您很快就会超出查询字符串的字符限制。相反,只需传递模型的 ID,然后在操作方法中再次从数据库(或 session )获取模型即可。

关于jquery - ajax.actionlink 路由值中是否可以有一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26616439/

相关文章:

c# - 为什么这个ajax调用失败了?

asp.net-mvc - 从业务逻辑类重定向asp.net mvc页面

asp.net-mvc - 具有相同类的多个元素使 jquery click 事件多次触发

c# - 为什么 View 模型为空?

jquery - 绝对侧边栏比内容 clearfix 高?

javascript - 无法使用 .data(el ,'dataname' ).sublev 获取数据对象

javascript - &lt;script&gt; 标签让 HTML 内容消失

javascript - 如何将json数据发送到codeigniter View

javascript - 如何在 NODE 服务器上使用 Puppeteer 并在前端 HTML 页面上获取结果?

jquery - 每 X 分钟使用 AJAX 调用一个文件,直到 Y 时间?