如何在C#中的ActionLink html帮助器中指定控制器

Cic*_*ami 2 c# actionlink routevalues asp.net-mvc-3

我有一个使用C#RazorASP.NET MVC3中开发的Web应用程序.

我想通过使用ActionLink HTML帮助程序调用特定Controller的特定Action方法.我知道ActionLink的第二个参数指定要从默认路由调用的Action方法,这是我的Global.asax文件中唯一的一个:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Index", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

我想从Home Controller 调用Download Action方法而不是Index.这不起作用:

@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )
Run Code Online (Sandbox Code Playgroud)

它需要第三个参数类型的对象,但我无法在网上找到任何例子.

调用特定Controller/ActionMethod需要哪些步骤?我应该在我的Global.asas文件中创建另一个路由吗?

谢谢

Soe*_*Moe 22

试试这个:

@Html.ActionLink("Download", "Download", new { controller = "Home",  Id = topic.TopicId });
Run Code Online (Sandbox Code Playgroud)

第三个参数object:routeValues在Asp.net MVC中用作字典.Phil Haacked 在博客中谈到了将对象用作路由值的决定.

更新:
您的重载功能无效,因为您正在调用此方法.字符串也是对象.所以,你传递的"Home"是routeValues和new { topicId = topic.Id}htmlAttributes.:)