gpt4 book ai didi

asp.net - 使用 ASP.NET MVC 区域路由找不到错误 404

转载 作者:行者123 更新时间:2023-12-02 19:32:12 25 4
gpt4 key购买 nike

我在 MVC 5 中遇到区域路由问题。当我浏览到/Evernote/EvernoteAuth 时,出现 404 找不到资源错误。

我的区域如下所示:

Areas
Evernote
Controllers
EvernoteAuthController
Views
EvernoteAuth
Index.cshtml

EvernoteAreaRegistration.cs(更新:RegisterArea() 没有被调用,所以我进行了清理和重建。现在它被调用,但结果相同。)包含此路线图:

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Evernote_default",
"Evernote/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}

EvernoteAuthController 的 Index() 方法仅返回 View()。

我的应用程序的 RouteConfig.cs 目前没有定义路由映射,但我尝试通过实现以下方式手动“强制”它:

routes.MapRoute(
name: "EvernoteAuthorization",
url: "Evernote/{controller}/{action}",
defaults: new { controller = "EvernoteAuth", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "AysncOAuth.Evernote.Simple.SampleMVC.Controllers" }
);

但无论此路线图是否存在或被注释掉,我都会得到相同的结果。

使用 Phil Haack 的 asp.net mvc routing debugger我看到我的路线匹配得很好,并且区域名称、 Controller 名称和操作方法名称也匹配。我在 Controller 操作方法中放置了断点,但从未输入过这些方法。更新:浏览到/Evernote/EvernoteAuth 时从未输入这些方法,但是当我浏览到区域名称/Evernote 时,会实例化 EvernoteAuthController 并调用 Index() 方法。 (为什么该 Controller 由/Evernote 实例化,而不是由/Evernote/EvernoteAuth 实例化?)然后我收到错误:

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/EvernoteAuth/Index.aspx
~/Views/EvernoteAuth/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/EvernoteAuth/Index.cshtml
~/Views/Shared/Index.cshtml
and so on...

在这种情况下,我相信 ~ =/(应用程序根目录)。因此 Areas\Evernote\Views 区域未被搜索。

如何解决此问题?

最佳答案

将正确的命名空间添加到 Controller 中非常重要

  namespace YourDefaultNamespace.Areas.Evernote.Controllers
{
public class EvernoteAuthController : Controller
{
...
...
}
}

这样路由就可以找到你的 Controller 了。现在您必须使用方法在 Global.asax.cs 中注册该区域

AreaRegistration.RegisterAllAreas();

关于asp.net - 使用 ASP.NET MVC 区域路由找不到错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25450549/

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