MVC5区域表现不正常

时间:2016-08-17 04:56:44

标签: c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-mvc-areas

此帖直接与:MVC5 Area not working

相关

该帖子修复了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" }
            );
        }
    }
}

1 个答案:

答案 0 :(得分:1)

由于您有一个名为Setup的区域具有上述路由配置,因此打开http://localhost:45970/Setup/Start将在StartController区域下执行Setup。您收到404错误是因为您在StartController区域内没有Setup,但您可以成功打开http://localhost:45970/Setup/Setup/Start,因为您有SetupControllerStart行动Setup区域下的方法。

根据您的评论,您需要以下网址格式

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

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