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

时间:2012-05-04 17:18:29

标签: c# asp.net-mvc asp.net-mvc-3 razor actionmethod

我通过操作链接将视图页面中的对象的通用列表传递给操作方法。动作链接看起来像这样

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

动作方法签名是

public ActionResult Foo(List<foo> a)

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

有人建议我“发布到ActionResult”。这是什么意思?如果是解决方案那么好。

1 个答案:

答案 0 :(得分:0)

你可以尝试这个,它会将元素传递给?a [0] = foo&amp; a [1] = bar&amp; 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);