【问题标题】:Asp.Net MVC Call another controller from viewAsp.Net MVC 从视图中调用另一个控制器
【发布时间】:2009-05-04 20:18:54
【问题描述】:

假设我在“主页/索引”页面上,我想转到页面 MyOtherController/Index/1

我该怎么做?

我试试:

<%= Html.ActionLink("Test", "Index", "MyOtherController", new { id=item.Id }) %>

我是否还必须在 Global.aspx 文件中添加路由?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    一种选择是在路由值列表中指定控制器的名称:

    <%= Html.ActionLink("Test", "Index"
        , new { controller = "MyOtherController", id = item.Id }) %>

    另一种方法是将ActionLink 的重载与htmlAttributes = null 一起使用:

    <%= Html.ActionLink("Test", "Index"
        , "MyOtherController", new { id = item.Id }, null) %>

    在这种情况下,ASP.NET MVC 模板中的默认路由负责路由。

    【讨论】:

      【解决方案2】:

      我不相信 ActionLink 具有与该特定签名匹配的重载。您需要在路由值之后添加“null”以找到匹配的值(对于 htmlAttributes)。 Ole 的解决方案会更干净,所以这确实是一个偏好问题。它还有助于提高可读性,因此您不必猜测每个参数是否是链接文本、动作/控制器等。

      【讨论】:

        猜你喜欢
        • 2013-09-25
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 2015-12-28
        相关资源
        最近更新 更多