如何在c#的ActionLink html helper中指定控制器



我有一个web应用程序开发在ASP。净MVC3 c# 剃刀

我想通过使用ActionLink HTML helper来调用特定控制器的特定动作方法。我知道ActionLink的第二个参数指定了要从默认路由调用的Action Method,这是我的Global中唯一的一个。asax 文件:

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

我想从Home控制器调用Download Action方法,而不是Index。这行不通:

@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )

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

调用一个特定的Controller/ActionMethod需要哪些步骤?我要在全局文件中创建另一个路由吗?研究文件?

谢谢

试试这个:

@Html.ActionLink("Download", "Download", new { controller = "Home",  Id = topic.TopicId });

第三个参数object: routeValues,在Asp.net MVC中用作字典。Phil hackack在博客中讨论了使用object作为路由值的决定。

:
你的重载函数没有工作,因为你正在调用这个方法。字符串也是对象。所以,你传递"Home"作为routeValues和new { topicId = topic.Id}作为htmlatattributes。:)

这是您需要的重载吗?您将需要第五个参数用于html属性。

@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId }, new { name="Download" )

最新更新