此帖直接与: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" }
);
}
}
}
答案 0 :(得分:1)
由于您有一个名为Setup
的区域具有上述路由配置,因此打开http://localhost:45970/Setup/Start
将在StartController
区域下执行Setup
。您收到404错误是因为您在StartController
区域内没有Setup
,但您可以成功打开http://localhost:45970/Setup/Setup/Start
,因为您有SetupController
和Start
行动Setup
区域下的方法。
根据您的评论,您需要以下网址格式
http://{host}/Setup/{view}
http://{host}/Admin/{view}
您可以在不使用任何区域的情况下完成此操作。您只需使用默认路由AdminController
和SetupController
。