我有一个用于admin的ASP.NET MVC区域,这是AdminAreaRegistration.cs中的代码
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"myadmin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
在Visual Studio中进行测试时,本地问题永远不会成功加载。
现在我已经将网站发布到Azure,并且管理区域没有加载到生产服务器上,我收到此错误。
路径控制器' / myadmin /'未找到或未实现IController。
区号是在我的主项目中,我在Azure上验证它是.dll,所以我不认为Azure缺少文件。
有什么想法吗?
答案 0 :(得分:1)
您是否将AreaRegistration.RegisterAllAreas();
添加到Global.asax?
区域名称必须覆盖当前名称,例如:
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "myadmin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"myadmin/{controller}/{action}/{id}",
new { controller = "Admin", action = "Index", id = UrlParameter.Optional },
new[] { "Admin.Controllers" }
);
}
}
答案 1 :(得分:1)
好吧,这真是微不足道,我愚蠢到在我的浏览器中键入错误的路径。 : - /
/myadmin/
路径也从未在本地工作过。我一直在使用/myadmin/home
,但我没有注意到因为它已被加入书签。 /myadmin/home
也可以在Azure上加载而不会出现任何问题。