在asp.net mvc 3中,如果我有一个名为MyArea的区域,我将如何使用Url.Action或Url.RouteUrl获得指向http:// myapproot / MyArea /的链接?我想链接到该区域的根,以便可以重复使用javascript中的URL,因此,如果可能的话,我不想在URL中包含控制器或操作.
解决方法:
要为MyArea创建“根”,可以在MyArea的AreaRegistration类中的RegisterArea()方法中创建一条路由.
例:
Foo是“根”控制器的名称.
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"MyArea_default",
"MyArea/Foo/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
然后在剃刀页面上可以像这样调用特定的路线…
@Url.RouteUrl("MyArea_default")
将呈现为
/MyArea/Foo