将模型传递给Html.Action

时间:2011-12-22 18:17:57

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

使用asp.net MVC3,我有一个需要远程验证的局部视图。据我所知,这意味着它需要它自己的控制器,所以我使用Html.Action来调用这个视图和它的控制器。

我确实希望仍然将模型传递给Html.Action,就像我使用Html.Partial一样。我怎么能这样做?

2 个答案:

答案 0 :(得分:10)

Html.Action有一个重载,它将路由值作为对象。您可以尝试在那里传递模型,模型绑定将会启动。您的操作必须是期望类型为Model的参数。

Html.Action("ActionName","ControllerName", Model)

答案 1 :(得分:4)

您必须使用匿名类传递模型

    @Html.Action("Menu", "MyController", new { data = Model.Foo.Bar})

    [ChildActionOnly]
    public ActionResult Menu(Bar data )
    {
        return PartialView("Menu", data );
    }