传递给操作方法的列表没有元素

本文关键字:元素 列表 操作方法 | 更新日期: 2023-09-27 18:33:08

我正在通过操作链接将对象的通用列表从视图页面传递到操作方法。 操作链接如下所示

@Html.ActionLink("Click here", "Foo", new { a = Model.A }) 

操作方法签名为

public ActionResult Foo(List<foo> a)

问题是,当我在调试器中运行此代码时,我可以清楚地看到视图中此列表中有两个元素,但是当执行到达操作方法时,列表中没有元素。 为什么会这样?

有人建议我"发布到ActionResult"。 这是什么意思? 如果这是解决方案,那就太好了。

传递给操作方法的列表没有元素

你可以试试这个,它会把元素传递为 ?a[0]=foo&a[1]=bar&a[2]=hello

@{
    var dict = new RouteValueDictionary();
    for (int i = 0; i < Model.A.Count; i++)
    {
        dict.Add("a[" + i + "]", Model.A[i]);
    }
}
@Html.ActionLink("Click here", "Foo", dict);