Asp.net mvc 如何使用ASP.NET 5.0和MVC 6中的标记帮助程序链接到另一个区域中的控制器

Asp.net mvc 如何使用ASP.NET 5.0和MVC 6中的标记帮助程序链接到另一个区域中的控制器,asp.net-mvc,Asp.net Mvc,我正在做这个项目,我需要一个管理员的区域。 我的路由工作正常,因此,如果我手动输入url,我可以使用以下内容访问控制器和索引页:“”,但如何使用原始主控制器和索引页中的标记帮助程序(或actionLink)链接到它 我尝试过的(没有成功)是: 这是我的路线: app.UseMvc(routes => { routes.MapRoute( name: "areaRoute", template: "{area:exists}/{controller}/{action}/{id?}",

我正在做这个项目,我需要一个管理员的区域。 我的路由工作正常,因此,如果我手动输入url,我可以使用以下内容访问控制器和索引页:“”,但如何使用原始主控制器和索引页中的标记帮助程序(或actionLink)链接到它

我尝试过的(没有成功)是:

这是我的路线:

app.UseMvc(routes =>
{

 routes.MapRoute(
 name: "areaRoute",
 template: "{area:exists}/{controller}/{action}/{id?}",
 defaults: new { controller = "Admin", action = "Index" });

 routes.MapRoute(
 name: "Default",
 emplate: "{controller}/{action}/{id?}",
 defaults: new { controller = "Account", action = "Login" });

 }); 

routeValue
参数中设置区域:

var adminUrl = Url.Action("Index", "Admin", new { Area = "Admin" });
// or render link directly:
@Html.ActionLink(Resources.Admin, "Index", "Admin",  new { Area = "Admin" }, null)

routeValues也是设置操作所需的任何其他参数的地方,如id。

但是您的模板仍然是模板:“{area:exists}/{controller}/{action}/{id?}”,并且area仍然是必需的,对于路由,您不需要控制器和操作。“Resources.Admin”是什么意思包含?这只是一个用作链接名的字符串,取自资源文件。相当于编写
@Html.ActionLink(“SomeLinkName”,“Index”,“Admin”,new{Area=“Admin”},null)
app.UseMvc(routes =>
{

 routes.MapRoute(
 name: "areaRoute",
 template: "{area:exists}/{controller}/{action}/{id?}",
 defaults: new { controller = "Admin", action = "Index" });

 routes.MapRoute(
 name: "Default",
 emplate: "{controller}/{action}/{id?}",
 defaults: new { controller = "Account", action = "Login" });

 }); 
var adminUrl = Url.Action("Index", "Admin", new { Area = "Admin" });
// or render link directly:
@Html.ActionLink(Resources.Admin, "Index", "Admin",  new { Area = "Admin" }, null)