已删除的bin文件夹,也已清理并重建多次。出于某种原因,在检查完路由配置所需的所有文件后,我遇到了命名错误,我改变了它并将其尽可能地移植到了最大程度,但是我被卡住了。我正在尝试学习asp.net,但是这个错误让我目瞪口呆。名为'Billing_Default'的路由已经在路由集合中。路由名称必须是唯一的。参数名称:名称
这是系统文件夹,我已经扩大了重要的:
Project-
Reference-
Packages-
App_Start-
-RouteConfig.cs
-WebApiConfig.cs
Areas-
-Billing
-Invoice
Content-
Controllers-
Models-
Scripts-
Views-
Global.asax
Pacages.config
Web.config
我在我的每一个地区的注册文件。
这里是注册码的一个区域。
using System;
using System.Web.Mvc;
namespace WORK_GODDAMN.Areas.Billing
{
public class BillingAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Billing";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Billing_default",
"Billing/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
}
这里是我的Global.asax代码
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Http;
namespace WORK_GODDAMN
{
public class Global : HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
这里是我routeConfig代码索引页
using System.Web.Mvc;
using System.Web.Routing;
namespace WORK_GODDAMN
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//AreaRegistration.RegisterAllAreas();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "Core.Controllers" }
);
}
}
}
CSHTML代码应该重定向到预定区域。
<!DOCTYPE html>
<html>
@using System.Web.Optimization
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Scripts.Render("~/Scripts/modernizr.js")
</head>
<body>
<div>
<div>
<h2>{Demo}- Pluggable Modules</h2>
</div>
<div id="nav">
@Html.ActionLink("Home","Index","Home", new {Area=""}, null) |
@Html.ActionLink("Marketing","Index","Marketing", new {Area="Marketing"}, null) |
@Html.ActionLink("BillingMain", "Index", new { Area = "Billing" })
</div>
<hr />
<div>
@RenderBody()
</div>
</div>
@Scripts.Render("~/Scripts/jquery.js")
@RenderSection("Scripts", required: false)
</body>
</html>
我不是为什么这个冲突正在发生的事情,我已经清理和重建多次,我使用的Mac 2017年的Visual Studio,所以我不得不来配置自己的领域。
您是否尝试将'AreaRegistration.RegisterAllAreas();'移到'Global.asax'内'Application_Start()'的注册部分的顶部? –
是的,我做了,我厌倦了各种各样的组合。 –
此外,您还需要从'RouteConfig'类中移除'AreaRegistration.RegisterAllAreas();'这会尝试重新注册区域并导致您遇到的错误。 –