【问题标题】:How can I pass parameters to an Action using Html.Action() in ASP.NET MVC?如何在 ASP.NET MVC 中使用 Html.Action() 将参数传递给 Action?
【发布时间】:2011-03-10 04:38:32
【问题描述】:

我一直在使用Html.Action("ActionName", "ControllerName") 来跨控制器调用子操作,而无需在 Views\Shared 中拥有视图。这对于显示会话或 cookie 信息等内容非常有用。

我想将其他参数传递给Html.Action("ActionName", "ControllerName"),而不是仅仅访问cookies,以便动作可以根据传递给原始视图的数据执行不同的代码。

我应该使用不同的方法将参数传递给不同控制器中的子操作吗?如何做到这一点?

【问题讨论】:

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


    【解决方案1】:

    您可以像这样在 RouteValues 属性中指定其他数据。

    Html.Action("ActionName","Controller", new { id = 1 })
    

    【讨论】:

    • 哇,好甜!!!我在智能感知中看到了 RouteValues,但我没有使用那种格式。我试过Html.Action("Action", "Controller", model.Paramter)。我马上就试试这个。
    • 如何传递字符串,如文本或自动填充的下拉列表项的 id?
    • @antman1p 这听起来像是一个新问题,而不是评论。在此处发布新问题的链接,我将尽可能提供帮助。一件事,听起来您尝试做的事情发生在客户端,因为它取决于与用户(浏览器)的交互,而这个问题特别是指如何获取包含参数的操作的链接呈现在服务器端的视图上。
    【解决方案2】:

    在这个问题上补充一点,我使用的是 ASP.Net MVC 5,我可以通过以下代码成功实现:

    @Html.Action("foo",new {parameter1=1})
    

    【讨论】:

    • 那是同一方法的重载。在该重载中,假设您正在调用用于呈现当前视图的同一控制器,并且操作是“foo”。还有一些其他的重载值得一提:msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多