名为“Home_default2”的路线已经在路线集合中。路线名称必须是唯一的。
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
AreaRegistration.RegisterAllAreas();
routes.MapRoute(
name: "Default",
url: "area/{controller}/{action}/{id}",
defaults: new {area="Home_Default", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
public override string AreaName
{
get
{
return "Home";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Home_default2",
"Home/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
自动生成的代码是错误的,我做错了什么?
答案 0 :(得分:7)
要解决此问题,只需删除bin文件夹中的所有.dll files
,然后再次构建解决方案。这应该为你解决问题。
答案 1 :(得分:2)
问题是重复的`AreaRegistration.RegisterAllAreas();在路线上和在global.asax
所以只需要这个:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
将Home_Default更改为Home。
答案 2 :(得分:0)
在我的情况下,我创建了一个区域&我在Route.config中添加了这一行。
AreaRegistration.RegisterAllAreas();
但是这个陈述已经存在于global.asax的Application_start中。因此得到了错误。
所以从route.config中删除它。 我没有更改任何路线名称。一个路由名称是默认的(在RouteConfig文件中)&其他是isaname_default(在AreaRegistration.cs文件中)。