MVC5 区域行为不正常

MVC5 Area not behaving properly

这个post直接相关于:

post 修复了 index.cshtml 问题,但是它没有解决该控制器的每个视图。例如:

http://localhost:45970/Setup/Start给出找不到资源的错误(基本上是404)。

但是 http://localhost:45970/Setup/Setup/Start 调出正确的页面。

那么需要重新配置什么才能使设置区域中该控制器的 所有 视图正确打开?

编辑 1

代码来自 SetupAreaRegistration.cs

using System.Web.Mvc;

namespace BlocqueStore_Web.Areas.Setup
{
    public class SetupAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get
            {
                return "Setup";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                name: "Setup_default",
                url: "Setup/{controller}/{action}/{id}",
                defaults: new { action = "Index", controller = "Setup", id = UrlParameter.Optional },
                namespaces: new[] { "BlocqueStore_Web.Areas.Setup.Controllers" }
            );
        }
    }
}

由于你有一个名为Setup的区域,上面的路由配置,打开http://localhost:45970/Setup/Start会执行Setup区域下的StartController。你得到404错误是因为你在Setup区域下没有StartController,但是你可以打开http://localhost:45970/Setup/Setup/Start成功,因为你在SetupControllerStart操作方法下Setup面积。

根据您的评论,您需要以下 url 模式

http://{host}/Setup/‌​{view}
http://{host}/Admin/‌​{view}

您可以在不使用任何区域的情况下完成。您只需要 AdminControllerSetupController 使用默认路由。