gpt4 book ai didi

asp.net-mvc-3 - 解决 "The resource cannot be found."错误

转载 作者:行者123 更新时间:2023-12-01 13:00:16 35 4
gpt4 key购买 nike

我有一个内置了几个区域的 MVC 3 应用程序,其中一个区域是我网站的管理部分。一切正常。我想尝试使用 MvcContrib Portable Areas 使我的应用程序更加模块化,因此我安装了 MvcContrib,经过反复试验后我启动并运行了几个 Portable areas。

然后我决定将我的管理区域移动到一个便携区域,所以我创建了新项目并删除了我的管理便携区域。我不得不重命名我的本地管理区域,以免发生冲突。在将一些代码移至 Admin PA 时,我决定不想将所有 Telerik 和其他已连接到我的 Admin 区域的东西移到令人头疼的地方。所以我把东西移回了主项目区域并删除了 Admin PA。

我重新连接了我的管理区域,并检查了与设置区域相关的所有内容。现在对于我的生活,我无法加载我的主要项目中的任何区域。我不断收到“找不到资源”的消息。错误信息。

我什至删除了对 MvcContrib 和 Portable Areas 的引用,但仍然没有成功。我束手无策,因为我不知道如何调试它。我使用了自定义路由处理程序以及 Glimpse,但在抛出错误时它们都不是很有用。

这是我的 global.asax 中的路由

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
null,
new string[] { "CoolProject.Web.Controllers" }
);

这是我管理区注册文件中的路由

context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "CoolProject.Web.Areas.Admin.Contollers" }
);

这是我的 Global.asax

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "CoolProject.Web.Controllers" }
);

}

protected void Application_Start()
{

AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
InitializeContainer();
AppStart_Structuremap.Start();

SiteMapManager.SiteMaps.Register<XmlSiteMap>("AdminNavigation", sitemap => sitemap.LoadFrom("/Areas/Admin/AdminNavigation.sitemap"));

}

我已经根据类似的工作站点检查了我的设置,除了 namespace 和类之外,一切都是一样的。

我在 Win 7 IIS7.5 上开发

使用 Glimpse Routes 插件我可以看到路线存在,但问题是我的 Global.axas 文件中的路线接管了对这些区域的所有请求。

我需要如何处理我的路线才能让核心应用程序和区域相处融洽?有趣的是,我有另一个生产应用程序使用工作正常的区域。

更新....

我创建了一个新的 MVC 3 项目,添加了一个名为 Admin 的区域。然后我编辑了 AdminAreaRegistration.cs 和 Global.asax 文件以将命名空间包含在 MapRoute 语句中,对其进行编译并完美运行。我可以毫无问题地访问该区域。

然后我将 Global.asax 和 AdminAreaRegistration.cs 与我损坏的项目中的文件进行了比较,它们是相同的。这不是我设置路线的问题,我认为还有另一个我没有看到的问题。

最佳答案

你在打电话吗

AreaRegistration.RegisterAllAreas();

在您的 Global.asax 中的 Application_Start 上?您使用什么服务器进行开发 Cassini、IISExpress、IIS?

在查看更详细的信息后进行编辑。

如果您有此代码,请在您的管理区域注册文件中

context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "CoolProject.Web.Areas.Admin.Contollers" }
);

我认为“CoolProject.Web.Areas.Admin.Contollers”中有错字,应该是“CoolProject.Web.Areas.Admin.Controllers”?

关于asp.net-mvc-3 - 解决 "The resource cannot be found."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554561/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com