如何为其他控制器的“索引”操作创建ActionLink?

时间:2012-08-25 19:48:13

标签: asp.net-mvc html.actionlink

如何更改以下代码以生成正确的网址?

注意:ActionLink是从与DomainsController不同的控制器生成的。

@Html.ActionLink("Domains", "Index", "Domains", new { id = item.Name }, null)

目标是查看以下网址。

/Domains/ItemName

我得到的是:

/Domains/Index/ItemName

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

奇怪的路由:)

这是一个快速而又肮脏的解决方案:

@{string link= "Domains/" + item.Name;}
@Html.ActionLink("Domains", "", link, null, null)

答案 1 :(得分:0)

您的要求不切实际。你当然可以

之类的东西来实现
routes.MapRoute(null,
                "Domains/{id}",
                new { controller = "Domains", action = "Index" }
);

但是,您必须为所有其他DomainsController操作方法创建显式路由规则,否则您将无法简单地使用,例如/Domains/OtherAction了 - 它将被上述规则捕获,并被解释为使用Index

调用id == "OtherAction"方法