我怎样才能使用Html.Action?

时间:2012-01-16 00:56:07

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

我想了解如何使用:

@Html.Action("GetOptions", )

我想做的是将呼叫传递给我的控制器并传递参数:

pk = "00" and rk = "00"

有人可以解释我如何使用Html.Action

来做到这一点

3 个答案:

答案 0 :(得分:43)

您应该查看Action方法的文档;它的解释很好。对于您的情况,这应该工作:

@Html.Action("GetOptions", new { pk="00", rk="00" });

controllerName参数将默认为从中调用Html.Action的控制器。因此,如果您尝试从另一个控制器调用操作,则必须指定控制器名称,如下所示:

@Html.Action("GetOptions", "ControllerName", new { pk="00", rk="00" });

答案 1 :(得分:9)

首先,创建一个包含参数的类:

public class PkRk {
    public int pk { get; set; }
    public int rk { get; set; }
}

然后,使用Html.Action传递参数:

Html.Action("PkRkAction", new { pkrk = new PkRk { pk=400, rk=500} })

并在Controller中使用:

public ActionResult PkRkAction(PkRk pkrk) {
    return PartialView(pkrk);
}

答案 2 :(得分:0)

另一种情况是http重定向。 如果您的页面将http请求重定向到https,则可能是您的部分视图尝试自行重定向。

它再次导致同样的问题。 对于此问题,您可以重新组织.net错误页面或iis错误页面配置。

只需确保将请求重定向到正确的错误或找不到页面,并确保此错误页面包含无问题的部分。如果您的页面仅支持https,请不要在不使用https的情况下将请求转发到错误页面,如果错误页面包含partial,则此partials会尝试从请求的URL单独重定向,这会导致问题。