如何在 C# 中的 ActionLink html 帮助程序中指定控制器
我有一个使用 C# 和 Razor 在 ASP.NET MVC3 中开发的 Web 应用程序。
我想使用 ActionLink HTML 帮助程序调用特定 控制器 的特定操作方法。我知道 ActionLink 的第二个参数指定要从默认路由调用的操作方法,这是我的Global.asax文件中唯一的一个:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Index", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我想从Home控制器而不是Index调用Download操作方法。这不起作用:
@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )
它需要一个对象类型作为第三个参数,但我在网上找不到任何示例。
调用特定的控制器/操作方法需要哪些步骤?我应该在 Global.asas 文件中创建另一条路线吗?
谢谢
I have a web application developed in ASP.NET MVC3 with C# and Razor.
I would like to call a specific Action Method of a specific Controller by using the ActionLink HTML helper. I know that the second parameter of ActionLink specifies the Action Method to be called from the Default route, which is the only one in my Global.asax file:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Index", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
I would like to call the Download Action Method from the Home Controller instead of Index. This does not work:
@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )
It requires as third parameter a type Object but I cannot find on the web any example.
What are the steps needed in order to call a specific Controller/ActionMethod? Shall I create another route in my Global.asas file?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
第三个参数,对象:routeValues,在 Asp.net MVC 中用作字典。 Phil Haacked 博客介绍了使用对象作为路由值的决定。
更新:
您的重载函数不起作用,因为您正在调用此方法。 字符串也是对象。因此,您将
"Home"
作为 RouteValues 传递,并将new { topicId = topic.Id}
作为 htmlAttributes 传递。 :)Try this one:
The third parameter, object: routeValues, is used as dictionary in Asp.net MVC. Phil Haacked blogged about the decision for using object as route values.
update:
Your overload function is not working because you are calling this method. String is also object. So, you are passing
"Home"
as routeValues andnew { topicId = topic.Id}
as htmlAttributes. :)这是您需要的重载吗?您将需要 html 属性的第五个参数。
Is this the overload you require? You will need the 5th parameter for html attributes.