我有一个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"
})
我的控制器方法接受列表作为参数
mymethod(列表一览表)
答案 0 :(得分:0)
不使用@Ajax.ActionLink()
。如果传递对象,则内部方法使用反射来使用对象中每个属性的名称和值来构建RouteValueDictionary
。因此,对于只有原始项目的简单对象,它可能会返回(例如对于Person对象)/TimeSeriesData?id=1&firstname=John&lastname=Doe
但对于对象内的集合或复杂对象,它只返回属性的ToString()
方法。
在您的情况下(检查它生成的html),它类似于/TimeSeriesData?capacity=0&count=0
,因为capacity
和count
是List
的属性。您可以构建自己的RouteValueDictionary
,但这不是一个好主意,因为您很快就会超出查询字符串的字符限制。而只是传递模型的ID,并在action方法中再次从数据库(或会话)中获取模型。