如何链接到某个区域的根?

时间:2012-02-29 19:26:13

标签: c# asp.net-mvc razor asp.net-mvc-routing

在asp.net mvc 3中,如果我有一个名为MyArea的区域,我如何使用Url.Action或Url.RouteUrl获取http://myapproot/MyArea/的链接?我想链接到该区域的根目录,以便我可以在javascript中重复使用该URL,因此如果可能的话,我不希望在URL中有控制器或操作。

2 个答案:

答案 0 :(得分:3)

要为MyArea创建“root”,您可以使用位于MyArea的AreaRegistration类中的RegisterArea()方法创建路径。

示例: Foo是“根”控制器的名称..

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "MyArea_default",
        "MyArea/Foo/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }
    );
}

然后,从您的Razor页面,您可以调用这样的特定路线......

@Url.RouteUrl("MyArea_default")

将呈现为

/MyArea/Foo

答案 1 :(得分:1)

您可以使用Html.ActionLink

<%= Html.ActionLink("Show Blog", "ShowBlog", "Blog", new { area = "blog" }, null) %>

Blog是你的区域。看看this