我有一个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" )